PIPEFORCE REST API (v3)

Download OpenAPI specification:Download

Last update: 2025-01-13T16:54:13.771688Z

This lists all PIPEFORCE RESTFul endpoints accessible via the hub service.

As base path use https://hub-ns.pipeforce.net/api/v3/ and replace ns by the namespace of your target PIPEFORCE instance.

This documentation contains four main sections:

  • Pipeline API: All endpoints related to store, read, delete and execute pipelines. See here fore more details about Pipelines
  • Property API: All endpoints related to store, read and delete properties. See here for more details about Properties and the Property Store
  • Command API: All endpoints related to execute a specific command. Note: Only POST version of these endpoints are listed where the request body becomes the body to the command. But most of them can be used also be called using the HTTP GET method. See here for more details about calling Commands remotely
  • PelUtils: The documentation of all PEL utils. Not a real Rest API doc but in order to have all most recent pipeline element docs consolidated at the same place you can find this also here. Every PEL util starts with @. See here for more details about PEL Utils.

In order to successfully execute most of these endpoints, authentication is required and therefore the Authorization header must be set properly. For more details see the Authentication documentation.

For further details, tutorials and examples, go to the PIPEFORCE Academy.

Pipeline API

/pipeline

Adhoc executes the pipeline script provided in the request body and returns the result in the response body. Pipeline script can be a YAML, JSON or Multipart in the body.
See the Content-Type header for more details to specify the pipeline type.

header Parameters
Content-Type
required
string

If set to application/yaml expects a YAML pipeline script in the body which will be parsed and executed.
If set to application/json expects a JSON pipeline script in the body which will be parsed and executed.
If set to multipart/form-data expects in the body one part with name pipeline containing the pipeline (with part Content-Type set to application/json or application/yaml (default)) and one or more file upload parts with name file which will be converted to a content collection and provided in the message body.

Request Body schema:
object
object
Array of objects

Responses

Request samples

Content type
No sample

Response samples

Content type
application/json
{
  • "status": "error",
  • "statusCode": 500,
  • "statusMessage": "INTERNAL_SERVER_ERROR",
  • "value": {
    }
}

/pipeline:{path}

Stores the pipeline from the body into the property store at given {path}.
If such a pipeline already exists at this path, updates the existing one. Otherhwise, creates a new one.
The pipeline in the body can be a JSON, YAML or a x-www-form-urlencoded query string.

path Parameters
path
required
string >= 1

The property path of the pipeline in the property store. Must be of format: global/app/{app}/pipeline/{pipeline}. Any other pipeline location is not allowed by this endpoint.

header Parameters
Content-Type
required
string

If set to application/yaml expects a YAML pipeline script in the body.
If set to application/json expects a JSON pipeline script in the body.
If set to x-www-form-urlencoded expects a pipeline query string in the body. For details of this format, see here: URL encoded Pipeline.

Responses

Response samples

Content type
application/json
{
  • "result": "create",
  • "path": "string",
  • "uuid": "string",
  • "correlationId": "string"
}

/pipeline:{path}

Executes the persisted pipeline given by path and returns it result. The body of the POST request will become the body to the pipeline.

path Parameters
path
required
string >= 1

The property path of the pipeline in the property store. Must be of format: global/app/{app}/pipeline/{pipeline}. Any other pipeline location is not allowed by this endpoint.

Responses

Response samples

Content type
application/json
{
  • "status": "error",
  • "statusCode": 500,
  • "statusMessage": "INTERNAL_SERVER_ERROR",
  • "value": {
    }
}

/pipeline:{path}

Loads the pipeline script from property store by given path and returns it.

path Parameters
path
required
string >= 1

The property path of the pipeline in the property store. Must be of format: global/app/{app}/pipeline/{pipeline}. Any other pipeline location is not allowed by this endpoint.

Responses

Response samples

Content type
No sample

/pipeline:{path}

Deletes the persisted pipeline at path from the property store.

path Parameters
path
required
string >= 1

The property path of the pipeline in the property store. Must be of format: global/app/{app}/pipeline/{pipeline}. Any other pipeline location is not allowed by this endpoint.

/pipeline:uuid:{uuid}

Executes the persisted pipeline given by uuid and returns it result. The body of the POST request will become the body to the pipeline.

/pipeline:uuid:{uuid}

Uploads the pipeline given in the body and overwrites the pipeline at uuid in the property store.

/pipeline:uuid:{uuid}

Returns the persisted pipeline given by uuid.

/pipeline:uuid:{uuid}

Deletes the persisted pipeline given by uuid.

Property API

/property:{path}

Stores the property from the body into the property store. If such a property already exists, updates the existing one.

/property:{path}

Returns the property at given path.

/property:{path}

Deletes the property at given path.

/property-uuid:{uuid}

Updates the property value in property store given in body at property with given uuid.

/property-uuid:{uuid}

Returns the property value from property store with given uuid.

/property-uuid:{uuid}

Deletes the property from property store with given uuid.

/resource/{app}/{path}

Returns the value of the property given by {path} relative to the app given by {app} as a static resource.

ai

ai.intent.detect

Detects the intent based on a given advice configuration and the input message
and can directly execute a command linked to the intent.

Search Academy for more details about: ai.intent.detect.

query Parameters
advice
string

The advice configuration to apply on the input.

runDetectedCommand
string

Should the detected command be directly executed?
After it has been executed, the body of the executed command will be set as output.
Otherwise, if this param is false, only the intent JSON set passed to body.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

Responses

ai.prompt.send

This commands constructs a prompt from given parameters and input and sends it to the AI.

Search Academy for more details about: ai.prompt.send.

query Parameters
messages
string

The list of messages to be send. Each message must define at least the fields role and content.

prompt
string

(default) The system message to be send to the AI.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

Responses

app

app.config.list

Returns the configuration of all apps the currently logged-in user is allowed to see.

Search Academy for more details about: app.config.list.

query Parameters
app
string

The name of the app to load the config from (not its path). If null or empty, the config of all apps will be returned instead. If not found, empty JSON list is returned.

async
boolean

Run the installation async?

branch
string

The GitHub repo branch, commit or tag reference to be used. If null or empty, the default branch of the GitHub repo will be used. This parameter will be ignored in case no value for github is given.

credentials
string

DEPRECATED. Use param secret instead.

github
string

A GitHub repository path (owner/reponame) to download the app resources from. For example acme/myproject. If no credentials are given, the github-default secret will be used if exists. Otherwise, repo is expected to be a public one. If this parameter is missing, the app sources are expected in the body as zip file content instead.

runTests
boolean

Run the tests of the app after installation?

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

Responses

app.config.value.get

Returns the value of given app config entry.

Search Academy for more details about: app.config.value.get.

query Parameters
appName
string

The optional app name to search the config inside.

key
required
string

The config key those value to return.

Responses

app.install

Installs an app into the property store. The app can be located on GitHub or can be provided as zip file content in the body. If app is located in a private GitHub repo, the param secret must be set or the default secret github-default-readonly must exist which will be used as fallback in case no secret is set as param here.

Search Academy for more details about: app.install.

query Parameters
async
boolean

Run the installation async?

branch
string

The GitHub repo branch, commit or tag reference to be used. If null or empty, the default branch of the GitHub repo will be used. This parameter will be ignored in case no value for github is given.

credentials
string

DEPRECATED. Use param secret instead.

github
string

A GitHub repository path (owner/reponame) to download the app resources from. For example acme/myproject. If no credentials are given, the github-default secret will be used if exists. Otherwise, repo is expected to be a public one. If this parameter is missing, the app sources are expected in the body as zip file content instead.

overwrite
boolean

What to do if app with this key already exists? If true, the existing app will be uninstalled and replaced by this new version. Otherwise, an attempt to install an existing app will cause an error. Persisted data in data, system or object folder wont be deleted in any case. In order to delete such data you have to use command app.uninstall.

runTests
boolean

Run the tests of the app after installation?

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

Responses

app.marketplace.search

Searches the marketplace for apps ready to be installed.
Note: This command is limited to max. 10 calls per minute.

Search Academy for more details about: app.marketplace.search.

query Parameters
license
string

Limit the search to app repos with given exact license keyword only.

order
string

Orders the result desc or asc.

page
string

The 1-based page number to return.

results
string

Max. number of results per page.

searchInDesc
boolean

Search for searchString in the app repo description?

searchInName
boolean

Search for searchString in the app repo name?

searchInReadme
boolean

Search for searchString in the app repo README file?

searchInTopics
boolean

Search for searchString in the repo topics?

searchString
string

The text to search for.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

sort
string

Sorts the results by author-date or committer-date or (best-match). If null or empty, best-match will be used as default.

Responses

app.name.list

Returns the names of all installed global apps. This command is optimized for best performance. So prefer to use it instead of reading properties or property paths with pattern matching.

Search Academy for more details about: app.name.list.

query Parameters
async
boolean

Run the installation async?

branch
string

The GitHub repo branch, commit or tag reference to be used. If null or empty, the default branch of the GitHub repo will be used. This parameter will be ignored in case no value for github is given.

credentials
string

DEPRECATED. Use param secret instead.

github
string

A GitHub repository path (owner/reponame) to download the app resources from. For example acme/myproject. If no credentials are given, the github-default secret will be used if exists. Otherwise, repo is expected to be a public one. If this parameter is missing, the app sources are expected in the body as zip file content instead.

runTests
boolean

Run the tests of the app after installation?

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

Responses

app.resource.get

Returns resources from inside a given app resource folder of the property store.

Search Academy for more details about: app.resource.get.

query Parameters
app
required
string

The name of the app to load the resource from

async
boolean

Run the installation async?

branch
string

The GitHub repo branch, commit or tag reference to be used. If null or empty, the default branch of the GitHub repo will be used. This parameter will be ignored in case no value for github is given.

credentials
string

DEPRECATED. Use param secret instead.

github
string

A GitHub repository path (owner/reponame) to download the app resources from. For example acme/myproject. If no credentials are given, the github-default secret will be used if exists. Otherwise, repo is expected to be a public one. If this parameter is missing, the app sources are expected in the body as zip file content instead.

path
required
string

The path relative to the app's resource folder of the resource to be returned.

runTests
boolean

Run the tests of the app after installation?

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

Responses

app.tile.list

Returns the list of tiles the currently logged-in user is allowed to see.

Search Academy for more details about: app.tile.list.

query Parameters
app
required
string

The name (not path) of the global app to load the tiles from.

Responses

app.uninstall

query Parameters
appKey
string

The key of the app to uninstall. For example: global/app/myapp.

Responses

app.update

Deprecated. Use app.install with param update:true instead. Updates the given apps.

Search Academy for more details about: app.update.

query Parameters
async
boolean

Run the installation async?

branch
string

The GitHub repo branch, commit or tag reference to be used. If null or empty, the default branch of the GitHub repo will be used. This parameter will be ignored in case no value for github is given.

credentials
string

DEPRECATED. Use param secret instead.

github
string

A GitHub repository path (owner/reponame) to download the app resources from. For example acme/myproject. If no credentials are given, the github-default secret will be used if exists. Otherwise, repo is expected to be a public one. If this parameter is missing, the app sources are expected in the body as zip file content instead.

runTests
boolean

Run the tests of the app after installation?

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

Responses

assert

assert

Evaluates a given PEL conditions and throws an error in case a condition is invalid.

Search Academy for more details about: assert.

query Parameters
actual
string

The actual value to be compared with the expect value. If both values do not match, the assert fails.

body.equals
string

The value of this param is compared to the body. If different, exception is thrown. Can be a PE.

equals
string

Compares the result of param value with this. If not equal, throws exception. Can be a PE.

expect
string

The value to be expected and to be compared with the actual value.

false
string

A PE which must evaluate to false.

message
string

An optional message to describe the assert. Can be a PE.

true
string

(default) A PE which must evaluate to true.

value
string

The value to be used for comparison. Can be a PE.

Responses

audit

audit.log

Logs an audit step. Audit logs are treated differently since they need to be archived in some cases for compliance reasons.

Search Academy for more details about: audit.log.

query Parameters
level
string

By default all audit log entries are created with INFO level. For very sensitive or problematic actions, this can be increased to WARN or ERROR.

message
required
string

(default) The message to log. Can be a string or a pipe expression. If null or empty, the full pipe message will be logged.

principal
string

The optional information about the principal (user, system, account, ...) who initiated this. If null or empty, the info of the currently logged-in principal is used instead.

Responses

barcode

barcode.create

Creates a barcode from a dynamic format.

Search Academy for more details about: barcode.create.

query Parameters
format
string

The dynamic format of the barcode to be created. One of: AZTEC, CODABAR, CODE_39, CODE_93, CODE_128, DATA_MATRIX, EAN_8, EAN_13, ITF, PDF_417, QR_CODE, UPC_A, UPC_E

height
string

The height of the barcode. If empty, the default size is used.

text
string

(default) The text value to be transformed to a barcode.

width
string

The width of the barcode. If empty, the default size is used.

Responses

barcode.read

Reads a barcode from a dynamic PNG format. Expects the barcode image as content object in the body. Detects the barcode type automatically. By default returns the text extracted from the barcode in the body.

Search Academy for more details about: barcode.read.

Responses

body

body.delete

Sets the value in the body to null. Deletes any existing value in the body.

Search Academy for more details about: body.delete.

Responses

body.filter

DEPRECATED. Converts the input body to JSON and then filters the input body and removes any properties not matching the given filter. Throws exception if input body cannot be converted to JSON.Does nothing, if input body is null or empty. If the first level of the body is a list, appliesthe filter to each element inside the list. This command can be used for example to filter outsensitive information or to shrink a big result set for performance reasons.

Search Academy for more details about: body.filter.

query Parameters
properties
string

A comma separated list of first-level properties to be shown. If set, only those properties of the first level will be returned, those are listed here. All other properties will be omitted. For example to filter a user entity in the body with filter: id,username would return only the id and the username of the user. If not set, the body will not be converted and filtered at all and returned unchanged.

removeKey
boolean

Can only be applied, if the result is a list and contains elements with a single property each. For example: [{name: foo}, {name: bar}]. If set to true, removes the key from the property and converts the result to a simple list like: [foo, bar]. If the result is not a list or elements in the list contain more than one property, this param is ignored.

Responses

body.load

Tries to activate the data in the body (= loads data into memory). If it is a content reference or stream, reads it and puts it back into the body (replacing the origin value). If body value is already a loaded data like a JSON, map, list, string or primitive for example, does nothing.

Search Academy for more details about: body.load.

Responses

body.peek

Sets the most recent entry of the bodyStack as body. Doesn't remove it from the stack.

Search Academy for more details about: body.peek.

Responses

body.pop

Removes the most recent entry of the bodyStack and sets it to the body. (pops from stack and sets to body), If no entry is left in body stack, null is set to body.

Search Academy for more details about: body.pop.

Responses

body.push

Sets the current value of the body to a location defined by a PEL. This is handy in case you would like to simply save the body before next command overwrites it.If target is given, it is a PEL which will be executed in order to store the body value to this location. In case the target parameter is missing, the body will be pushed to a variable of name bodyStack. If this variable exists, it is assumed to be a list where the body value can be added at its end. if this variable doesn't exist, it will be created as a stack (list).

Search Academy for more details about: body.push.

Responses

body.set

Sets a value in the body. Overwrites any existing value in the body. The value to be set can be a constant or an expression.

Search Academy for more details about: body.set.

query Parameters
format
string

Converts a string value to the given target format if possible. If set to 'auto' tries to detect the target format by inspecting the value string. If set to 'none' doesnt apply any conversion.

value
string

(default) A string or an expression to be used as the value to be set. If missing, null is set.

Responses

bot

bot.prompt

Sends a prompt to a bot endpoint and returns the answer.

Search Academy for more details about: bot.prompt.

query Parameters
maxTokens
number

The maximum number of tokens to return in the response.

secret
string

The name of the secret which contains the token to connect to the bot backend. If not given as parameter will lookup in the secret store using the default name.

Responses

cache

cache.clear

Clears the underlying central cache and removes any entry those time to live has been expired. Can also be used to remove a single entry from the cache.

Search Academy for more details about: cache.clear.

query Parameters
expiredOnly
string

Clean only evicted and expired entries? If false, all entries will be removed!

key
string

(default) The key of the cache entry to remove. If empty or null, all entries will be checked for removal. If this parameter is given, the param prefix is ignore.

prefix
string

Removes all entries from the cache starting with given prefix. If param key is given, this param is ignored.

Responses

cache.get

Reads a value with given key from the cache and writes it into the output.

Search Academy for more details about: cache.get.

query Parameters
exit
boolean

If true, exits the pipeline if cache entry exists.

key
required
string

(default) The key to load the value from the cache.

remove
boolean

If true, removes the entry after it was successfully returned.

Responses

cache.has

Checks if cache has given entry

Search Academy for more details about: cache.has.

query Parameters
key
string

(default) Checks, if cache has entry with given key. If yes, puts true in the output. Otherwise false.

Responses

cache.info

Returns information about the current state of the cache. Available for system and support users only.

Search Academy for more details about: cache.info.

query Parameters
key
string

Returns the info for a given cache entry. If null or empty, the overall cache info is returned.

Responses

cache.list

Lists ALL entries of the cache. If entry is marked as sensitive: Does not show the cache value.

Search Academy for more details about: cache.list.

Responses

cache.put

Saves the given value under given key into a central cache.
If no value param is given, uses the body as cache value.

Search Academy for more details about: cache.put.

query Parameters
key
required
string

The unique key for the cache entry.

timeToLive
number

The min. time to live for this cache entry in millis.

value
string

The value for the cache entry. If not set, null is used.

Responses

call

call

Calls a pipeline script and returns with the result in the body. Note: Since version 9.0, JavaScript calls are no longer supported.

Search Academy for more details about: call.

query Parameters
args
string

Name value pair of arguments to be passed to the script. If the script is a pipeline, the arguments are set as vars overwriting any existing vars.If the script is a remote HTTP URL, the arguments are passed as request parameters, each.If the script is a script in classpath or property store, the arguments are passed via implicit variable: pi.args.

uri
required
string

(default) The uri to be called.

Responses

capture

capture

DEPREACTED (Use the cache.* commands instead). Captures the last pipe message and adds it into a list in the header under key {@link #HEADER_CAPTURED}. This is primarily for testing purposes but also can be used to create a snapshot of a certain pipeline state.

Search Academy for more details about: capture.

Responses

comment

comment.delete

query Parameters
uuid
required
string

The uuid of the comment to delete.

Responses

comment.get

query Parameters
uuid
required
string

The uuid of the comment to return.

Responses

comment.list

Lists all comments for a given property.

Search Academy for more details about: comment.list.

query Parameters
targetPath
string

The path of the target property this comment is for.
If both targetUuid and targetPath are given, targetPath will be ignored.
This param will be ignored if there is a comment in the input.

targetUuid
string

The uuid of the target property this comment is for.
If both targetUuid and targetPath are given, targetPath will be ignored.
This param will be ignored if there is a comment in the input.

Responses

comment.put

Creates or updates the given comment in the system.

Search Academy for more details about: comment.put.

query Parameters
author
string

The initial author of the comment. If null or empty, currently logged-in user will be used. This param will be ignored if there is a comment in the input.

targetPath
string

The path of the target property this comment is for.
If both targetUuid and targetPath are given, targetPath will be ignored.
This param will be ignored if there is a comment in the input.

targetUuid
string

The uuid of the target property this comment is for.
If both targetUuid and targetPath are given, targetPath will be ignored.
This param will be ignored if there is a comment in the input.

text
string

The text of the comment. This param will be ignore if there is a comment in the input.

Responses

config

config.find

Returns all admin config settings for a given group from the backend as a JSON in this format: {configKey:{value:someValue, canOverwrite:true|false}}. The attribute canOverwrite is only available if param includePermission is set.

Search Academy for more details about: config.find.

query Parameters
group
string

The config group to select: Returns all configs of this group. If null or empty, all configs of all groups will be returned if user has permission to do so.

includePermission
string

If true, additionally shows whether a currently logged-in user can write/change a configuration or not by adding the attribute canOverwrite:true|false. to each config entry.

key
string

The config key inside a given group. If key doesn't start with a group prefix (example: signature), the group must be given by group param. If prefix exists (example: email.signature), the group param will be ignored.

Responses

container

container.registry.delete

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

url
string

The url of the registry.

Responses

container.registry.list

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

Responses

container.registry.put

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

email
string

The email for the registry.

password
string

The password to access the registry.

url
string

The url of the registry.

username
string

The username to access the registry.

Responses

content

content.get

Deprecated. Use resolve command instead. Reads content from provided uri and puts the result back to body.

Search Academy for more details about: content.get.

query Parameters
uri
required
string

The content uri of the content to load.

Responses

data

data.decrypt

Decrypts the data previously encrypted using the command data.encrypt in the body using AES-256 in CBC mode by default. Puts the decrypted data into the output.

Search Academy for more details about: data.decrypt.

query Parameters
password
required
string

The password to decrypt the body with. The PBKDF2 algorithm will be applied to this password before using it as decryption key.

Responses

data.encrypt

Encrypts the data in the body using AES-256 in CBC mode by default and puts the encrypted datainto the output.

Search Academy for more details about: data.encrypt.

query Parameters
password
required
string

The password to encrypt the body with. The PBKDF2 algorithm will be applied to this password before using it as encryption key.

Responses

data.enrich

Enriches a given data object by applying a given PEL expression on it.

Search Academy for more details about: data.enrich.

query Parameters
do
required
string

A PEL which will be executed in order to enrich a selected field of the data object from input. These variables will be provided in the PEL: headers (= the pipeline headers), vars (= the pipeline variables), body (= the pipeline body), input (= the input data)

Responses

data.filter.jmespath

Applies the given JMESPath filter query to the input and writes the result to the output.

Search Academy for more details about: data.filter.jmespath.

query Parameters
query
required
string

(default) The filter query to be applied on the input.

Responses

data.filter.jsonpath

Applies the given JSONPath filter query to the input and writes the result to the output.

Search Academy for more details about: data.filter.jsonpath.

query Parameters
query
required
string

(default) The filter query to be applied on the input.

Responses

data.filter.pel

Applies the given PEL filter query to the input and writes the result to the output.

Search Academy for more details about: data.filter.pel.

query Parameters
query
required
string

(default) The filter query to be applied on the input.

Responses

data.list.filter

Iterates over a list of items given by input and removes all items matching the given criteria.

Search Academy for more details about: data.list.filter.

query Parameters
exclude
required
string

A PEL which will be executed on each iteration item. If the expression results in a true value, the item will be removed from the list. Additionally to the default PEL variables, the variable item (= current iteration item, default name) will be provided.

iterItemName
string

The name of the iteration item value, provided for exclude

Responses

data.list.limit

Limits a given list of data to a specific size. Removes any item from the list those index is above given maxLength - 1.

Search Academy for more details about: data.list.limit.

query Parameters
maxLength
string

Limits the data list from the input to the given max. length.

Responses

data.mapping

Converts from one data structure into a another by applying simple mapping rules. Auto-creates nested elements if required. In case input is an iterable (list) and iterable is set to true then all rules will apply to each entry in the list. In case no output is given, a new target list is created to hold all newly mapped values.

Search Academy for more details about: data.mapping.

query Parameters
contextualize
boolean

If true, the input is wrapped into an mapping context model providing more context information.
This model will be provided to any mapping rule and contains these fields:


  • headers = The pipeline headers.

  • vars = The pipeline variables.

  • body = The pipeline body.

  • item = The current item from the input for the mapping rule. If iteration is true,
    this will change on each iteration loop to the next element.

ignoreEmptyItems
string

In case iterate is set to true and an iteration item is an empty JSON, should it be ignored in the output?

iterate
boolean

In case the input is a list and all the mappings rules must be applied on each single item in the list by iterating them, set this flag to true. If input is not iterable but this is set to true, nothing happens and the single input item will be processed instead.

outputType
string

By default the type of the output element is detected automatically: If input is an object then output is also an object. If input is an array and iterate is set to true, then output is also an array. But sometimes it is necessary to map from an array to a final object, then you can set this to object. In this case, no new entry is created on output for each iteration. Instead it can be mapped to the same object.

rules
string

(default) A list of mapping PEL rules to map from the input to the output data set. A rule has the format inputPEL1 -> outputPEL1. Multiple rules are separated by a comma directly followed by a new line.

Responses

data.transform

This data transformer converts the input to an output format by applying the given template. By default the current message is provided as model inside the template context so you can access body, vars or headers similar to the default PEL approach.

Search Academy for more details about: data.transform.

query Parameters
engine
string

The template engine to be used. Currently 'freemarker' and 'pel' is supported.

groupBy
string

An expression to apply on the target list in order to group the result of a row into. If the expression returns false, the row result is added to the end of the list.If null or empty, each row result creates a new entry in the target list.

iterate
string

If true, the input is expected to be a list which will be iterated. The template is then applied on each iteration row and the result is added to a target list.

modelName
string

The name of the root model under which the input can be accessed inside the template. If null or empty, then the input defines the model names.

template
required
string

The template to be used for the transformation. It can the template text itself as string or a qualified uri pointing to a template resource like this for example: $uri:property:/my/template/path

Responses

datetime

datetime

Returns the current time at server side.

Search Academy for more details about: datetime.

query Parameters
format
string

The date time format pattern. If null, the system default format is used.

Responses

datetime.zones

Returns all official IANA time-zone names supported by this PIPEFORCE instance: http://www.iana.org/time-zones

Search Academy for more details about: datetime.zones.

Responses

dev

dev.null

This command simply reads the body (if there is any) and sends its content to '/dev/null'. It is mainly for testing purposes.

Search Academy for more details about: dev.null.

Responses

docs

docs.pelutils

Returns the docs for the available PEL utils.

Search Academy for more details about: docs.pelutils.

Responses

docs.pipeforce.apidoc

Returns the OpenAPI documentation of all default PIPEFORCE hub API endpoints.

Search Academy for more details about: docs.pipeforce.apidoc.

Responses

docs.pipeline.schema

Returns the V7 compliant JSON schema for a pipeline and all built-in commands.

Search Academy for more details about: docs.pipeline.schema.

Responses

document

document.understand

Returns metadata for a given unstructured document like an invoice PDF for example. Expects the document to be in the body by default. Returns the result as JSON in the body (replacing any existing value in the body).

Search Academy for more details about: document.understand.

query Parameters
apiKey
string

The alternative API key to connect to the service. If null or empty, the default one will be used, as defined by the default backend settings.

config
string

The config json to process document

filter
string

A PEL as filter to be applied to the output data before it is returned by this command. If null or empty, no filter is applied.

provider
string

The name of the provider to process document.

restUrl
string

The URL to be called by the command. If null or empty, the default url will be used as defined in the backend.

secret
string

The name of the secret in secret store.

Responses

docusign

docusign

Requests a signature of the given document in the body
via email (remote signing) using DocuSign. See here:
https://developers.docusign.com/esign-rest-api/code-examples/code-example-request-a-signature-via-email
Expects the to be signed document in the body with json.file encoding.

Search Academy for more details about: docusign.

query Parameters
accessToken
string

The DocuSign access token. If null or empty, the token will be read from settings.

accountId
string

The docuSign account Id for REST calls. Can be obtained here: https://developers.docusign.com/esign-rest-api/guides/authentication/user-info-endpoints . If not set, the command tries to get the account ID by an additional request from DocuSign

ccEmail
string

The email of cc user to get informed about the signing request. If null, no cc mail is sent.

ccName
string

The name of cc email user to get informed about the signing request.

signerEmail
required
string

The email address of the signer.

signerName
string

The real name of the signer.

subject
string

The email subject to be send to the signer. If null or empty, the default subject will be set.

Responses

drive

drive.archive.save

Saves the content of the body to the given archive folder in Drive. The content of the body must be a single file. Verifies the integrity of the archive on write. Returns the final archive file name / path (without archive root path) into the output target.

Search Academy for more details about: drive.archive.save.

query Parameters
namingPattern
string

The PEL pattern to be applied to generate the final archive file name / path. This name / path will be relative to the given archive root path. Additionally, provides these variables in this PEL pattern context: archiveCounter = The last value used as counter as it comes from the .counter file. When not present, is initialized by counting all files in archive folder. counter = The archiveCounter increased by 1.archivePath = The path to the archive root as given by path param. basename = The base filename of the archive file, without extension (for example myfile.pdf = myfile). basenameNoId = Same as basename but without the _ID-123 part in the file name if there is any.ext = The extension of the archive file, without a period (for example myfile.pdf = pdf) filename = The full name of the archive file, with extension (for example myfile.pdf = myfile.pdf). The default pattern is this: basename_counter.ext

path
required
string

The root path of the archive folder where the file to be saved to.

Responses

drive.copy

Copies a folder or file on Drive.

Search Academy for more details about: drive.copy.

query Parameters
path
required
string

The path of the folder or file to be copied.

to
required
string

The target folder to copy the resource into.

Responses

drive.delete

Deletes a file or folder on Drive. If resource doesnt exist, nothing happens.

Search Academy for more details about: drive.delete.

query Parameters
path
required
string

The path of the resource to be deleted. If it is a folder, it will be deleted recursively.

Responses

drive.exists

Checks whether a resource in Drive exists. Puts the string true or false in the message body depending whether the resource exists.

Search Academy for more details about: drive.exists.

query Parameters
path
required
string

The path of the resource to check for existence.

Responses

drive.list

Lists all resources from drive folder.

Search Academy for more details about: drive.list.

query Parameters
path
required
string

The path of the folder to be listed.

Responses

drive.mkdir

Creates a new dir on Drive if it not already exists.

Search Academy for more details about: drive.mkdir.

query Parameters
path
required
string

The path of the folder the new dir should be created within.

recurse
string

If set to true, any non existing folder in the path will be created.

Responses

drive.move

Moves a folder or file on Drive from one location into another.

Search Academy for more details about: drive.move.

query Parameters
path
required
string

The path of the folder or file to be moved.

to
required
string

The target folder to move the resource into.

Responses

drive.read

Reads a file from drive and puts its content as a pipeline resource into the body.

Search Academy for more details about: drive.read.

query Parameters
append
boolean

If true, appends the files read from drive to any existing collection in the body. In case the body is no collection but a content (single file), creates a new collection and adds all to this collection (already existing file and read files). In case the body is different from collection or content, an error is thrown. If false (default), overwrites any existing body value.

path
required
string

(default) The path of the file to be read from Drive.

Responses

drive.save

Saves the content of the body to Drive. The content of the body can be a content object (= single file) or a content collection (= folder of files).In case the body is not a content object, it will be tried to convert it to such a content object.

Search Academy for more details about: drive.save.

query Parameters
cleanupBody
string

If true, deletes the content from the body after it was saved to drive (default). Note: In case the body content is a stream, this stream will be empty even if this was set to false since streams can be processed only once and was already processed by writing its data to drive here.

namingStrategy
string

If defined, applies the given naming strategy to the name of the resource. If null or empty, no naming strategy is applied.

path
string

(default) The path of the file to be saved in drive. If a content collection is in the body, this is the path of the base folder where to store these files recursively. Otherwise, it is expected to be the full path to a single file. If null or empty, the name of the content object is used as path. If content object has also no path set, an exception is thrown.

Responses

drive.share

Shares a folder in Drive given by path to users given by recipients.

Search Academy for more details about: drive.share.

query Parameters
expires
string

NOT SUPPORTED YET. A timestamp in millis since 1970 when this share will expire. If -1 share will never expire.

invite
boolean

NOT SUPPORTED YET. Send an invite email to recipients.

message
string

Optional message of the share email to be send to the recipient. If type=user and at least one of subject or message parameter is set, an email will be send to the recipient after it was shared to him.

model
string

Optional model for the share email to be send to the recipient.

password
string

NOT SUPPORTED YET. A password to protect the share.

path
required
string

The path to the folder to be shared.

permission
number

The permission for the share: 1 (read), 2 (update), 4 (create), 8 (delete), 16 (share), 31 (all). Note: Permissions can be combined by additions: For example read (1) + update (2) would be 3. For public shares defaults to 1 (read).

subject
string

Optional subject of the share email to be send to the recipient. If type=user and at least one of subject or message parameter is set, an email will be send to the recipient after it was shared to him.

to
required
string

Comma separated list of users, group names or email addresses. Never null. If this is an expression and points to comma separated list, an array or a collection, will create share to any of the entries. If this value is missing, a public share is created instead

type
string

Can be either shared to 'user' or to 'group'. Defaults to 'user'

Responses

drive.tag

Adds or removes a WebDAV tag to a resource on drive.

Search Academy for more details about: drive.tag.

query Parameters
path
required
string

The path of the resource to tag.

remove
boolean

If true (or any non empty/null value), removes the given tag.

tagname
required
string

The name of the tag to add.

tagvalue
string

The value of the tag to add.

Responses

drive.upload.chunked

Supports chunked uploads of large files into the Drive endpoint. Expects an object in the body which can be converted to an input stream as the chunk data to be uploaded.

Search Academy for more details about: drive.upload.chunked.

query Parameters
action
required
string

Defines the action of the chunked upload. One of: create, upload, finalize, cancel

index
number

The index of the chunk. Mandatory for the upload action.

path
string

The target path where to copy the final file on finalize action. Mandatory for the finalize action.

uuid
string

The uuid to refer to the upload session as returned by the create action. Required for upload, finalize and cancel actions.

Responses

error

error

This command stops the execution of the current pipeline and returns an error to the caller.

Search Academy for more details about: error.

query Parameters
message
required
string

(default) The error message to return to the caller.

type
string

The type string to set for this exception.

Responses

eval

eval

Executes a given pipeline expression with the message as context.

Search Academy for more details about: eval.

query Parameters
expr
required
string

(default) The pipeline expression to be executed. Can be a single pel string or a list of expression strings.

Responses

event

event.listen

Deprecated. Use message.listen instead. Listening for events works like this: Add this command at the very first in your pipeline, define the event key you want to listen for and an optional filter expression. Then save this pipeline into the property store. This causes the system to automatically register this pipeline and execute it whenever an event with given key and matching filter is fired. Note: Only one event.listen command per pipeline is allowed and it needs to be the very first command in the pipeline. In the body of the pipeline the event object is provided and can be used for filtering for example.

Search Academy for more details about: event.listen.

query Parameters
eventKey
string

The key to listen for.

filter
string

DEPRECATED: Use parameter 'selector' instead. An optional PEL to execute the pipeline only in case the filter applies.

key
string

Deprecated. Use eventKey instead.

selector
string

Selects the message to be passed to this listener. Can be a PEL or a selector expression. Note: For performance reasons, using the body payload for filtering is not allowed here and will throw an exception. Use headers for filtering instead. If this parameter is set, filter will be ignored.

Responses

event.mapping.get

Returns all event key to pipeline key mappings.

Search Academy for more details about: event.mapping.get.

Responses

event.send

Sends a new event to inform listeners in pipelines and microservices.

Search Academy for more details about: event.send.

query Parameters
async
string

Send the event in ASYNC mode? Note: ASYNC is faster but lacks transaction capability. If false, message is send in SYNC. Slower but can use the current authentication and transaction context.

key
required
string

The key under which to send this event.

payload
string

The payload to send with this event. May be null.

traceId
string

The optional tracedId to be used to send this event. If not defined, a random traceId is created automatically.

Responses

except

except

In case an exception happens in a command, the pipeline execution will go to the first except command it finds (it will skip all other commands) after it. If the conditions on this except command match, the body of the except command will be executed. This means all commands after the except command will be executed until end of the pipeline or except.end was found whatever is first.

Search Academy for more details about: except.

query Parameters
drop
string

Should the exception be dropped after it was processed by this command or re-thrown?

responseStatusCode
string

In case this exception was raised because of a call of an external HTTP endpoint, the HTTP status code returned by this external service can be matched here.

type
string

(default) The type of the exception to match. Can be a single exception of a list of exception types.

Responses

except.end

Indicates the end of an except block.

Search Academy for more details about: except.end.

Responses

exit

exit

Exits the current pipeline flow and returns the current body state to the caller in case the if parameter evaluates to true.

Search Academy for more details about: exit.

Responses

finally

finally

Any command placed after this finally command will be executed even if the pipeline execution was quit using the exit command or by an exception.

Search Academy for more details about: finally.

query Parameters
do
string

An optional PE to execute finally.

drop
string

If set to true, catches and drops any existing exception and does not re-throw it. This is useful in case the exceptions will be handled by the finally block or should be dropped at all.

Responses

foreach

foreach

Splits a given set of data and repeats the subsequent commands for each entry in a given list until location of 'foreach.end' command. The current iteration item can be accessed using the path 'vars.[as]' or 'vars.loop.[as].item'. The current iteration index can be accessed using the path 'vars.loop.[as].index'. In order to find out whether current iteration index is odd or even, use 'vars.loop.[as].even'. Whereas [as] stands for the name given by the [as] parameter. Note: Even if not an error, you should prefer to set the 'as' parameter for every 'foreach' command. Not using it is discouraged and support for not using it will be removed in future versions.

Search Academy for more details about: foreach.

query Parameters
as
string

For each iteration/split, puts the current iteration item into the vars scope under this name. If this parameter is null or empty, the item wont be additionally exposed to vars scope. Additionally puts the current loop context under the variable name 'vars.loop.NAME.item' whereas 'NAME' is the value of this 'as' parameter. For example, if you set 'as' to 'myitem', then you can access the item using the path 'vars.loop.myitem.item' or 'vars.myitem'.The loop context contains these objects for each iteration: 'item' = The current iteration item. In case the iteration input is a map or a JSON, you can access the key of the item using 'item.key' and the value using 'item.value'.'index' = The current 0-based iteration index. 'even' = A boolean value whether current iteration index is even or not. This is useful for example for layouting.

end
string

*Deprecated*. Use the foreach.end command instead. Signals the end of a for each loop.

in
string

(default) This parameter points to a list of items to be iterated over. Each iteration item is placed under 'vars.loop.[as].item' and 'vars.[as]' whereas '[as]' will be replaced by the name given by the 'as' parameter.

item
string

*Deprecated*. Contains an optional expression which will be evaluated for each iteration to extract or prepare the iteration item. The result of this expression will be placed as iteration item.

loopName
string

*Deprecated.* Use parameter 'as' instead. This parameter is only here for downwards compatibility and will be removed in one of the next releases. If 'as' parameter is null or empty, this parameter gets checked. And if not null or empty, it will change the default loop context name in the vars scope from 'vars.loop' to 'vars.[loopName]', so you can access the current iteration item using 'vars.[loopName].item'.

Responses

foreach.end

Defines the end of a foreach loop.

Search Academy for more details about: foreach.end.

Responses

form

form.attachment.chunk.put

Adds a chunk to the given form draft attachment.
The chunk data is expected to be in the body (input) as binary stream or content object.

Search Academy for more details about: form.attachment.chunk.put.

query Parameters
collectionName
string

The collection of attachment. If not specified, root attachment is expected.

content
string

The content to be added to the chunk. If this parameter is null or empty, the body will be used as content instead.

formSessionId
required
string

The form session id.

name
string

The name of the attachment this chunk belongs to.

Responses

form.attachment.content

Reads the content of a form draft attachment.

Search Academy for more details about: form.attachment.content.

query Parameters
collectionName
string

The collection of attachment to add to. If not specified, root attachment is created.

formSessionId
required
string

The form session id.

name
required
string

The name of the attachment to be read.

Responses

form.attachment.delete

Removes an attachment from a form draft.

Search Academy for more details about: form.attachment.delete.

query Parameters
collectionName
string

The collection of attachment to delete from. If not specified, root collection is considered.

formSessionId
required
string

The form session id.

name
required
string

The name of the attachment to be deleted.

Responses

form.attachment.list

Lists all attachment of a given form draft.

Search Academy for more details about: form.attachment.list.

query Parameters
collectionName
string

The collection of attachments to list. If not specified, root attachments are listed.

formSessionId
required
string

The form session id.

Responses

form.attachment.put

Adds an uploaded file to the given form draft.
The file is expected to be in input as binary stream or content object.
In case input is null, an attachment of size 0 will be created.

Search Academy for more details about: form.attachment.put.

query Parameters
collectionName
string

The collection of attachment to add to. If not specified, root attachment is created.

contentType
string

The content type to be used for the attachment.
If not set, the value from the content object from input will be used (if any).
In case none can be found, application/octet-stream will be used.

fieldName
string

The name of the field in the form data JSON this attachment belongs to.

formSessionId
required
string

The form session id.

length
string

The length of the overall attachment.
Length of content given in input (if any) must be equal to or smaller than this value.

name
string

The file name of the attachment to be created.
If an attachment with this name already exists, overwrites the existing one.
If this param is not given, the value from the content object from input will be used (if any).

Responses

form.cleanup

Does a cleanup check and deletes all outdated form sessions. This command is mainly for testing and admin purposes. Not for business pipelines.

Search Academy for more details about: form.cleanup.

query Parameters
checkTtl
boolean

Checks the ttl of all form sessions and related data. Corrects it if required.

deleteOldest
number

Deletes the given number of oldest form sessions.

Responses

form.data.get

Returns the payload (JSON) of given form draft.

Search Academy for more details about: form.data.get.

query Parameters
formSessionId
required
string

The form session id.

Responses

form.data.put

Updates the given form data to the form draft.
The data is expected to be a JSON in the input to the command.

Search Academy for more details about: form.data.put.

query Parameters
formSessionId
required
string

The form session id.

Responses

form.delete

Deletes the form session and any related tmp / draft data.

Search Academy for more details about: form.delete.

query Parameters
formSessionId
required
string

The form session id.

Responses

form.start

Returns the form config with input and schema paths resolved.

Search Academy for more details about: form.start.

query Parameters
formId
string

The form id. Typically used in public forms where the form config path may not be shown for security reasons.

formParameters
string

The optional parameters to the form config. For example if a URI in a form config contains parameters.

formPath
string

The property path of the form config. If both, formId and formPath are given, formPath will be ignored.

formSessionId
required
string

The form session id.

Responses

form.submit

Submits the given form session.
In case it contains submit data in body (input), this will become the final form data
to be send to output.

Search Academy for more details about: form.submit.

query Parameters
formSessionId
required
string

The form session id.

Responses

function

function.backend.cache.clear

Responses

function.backend.status

Returns the status of the FaaS backend.

Search Academy for more details about: function.backend.status.

Responses

function.delete

Undeploys a function from the FaaS backend.

Search Academy for more details about: function.delete.

query Parameters
name
string

The name of the function to undeploy.

Responses

function.get

Returns all deployed functions or a specific one.

Search Academy for more details about: function.get.

query Parameters
name
string

The name of the function to return. If null or empty, all deployed functions will be returned.

Responses

function.put

Deploys a new function to the FaaS backend. Expects the function code in the body or input of the command.

Search Academy for more details about: function.put.

query Parameters
code
string

The code of the function to deploy. Can also be a custom uri starting with $uri:... . In this case the function code will be loaded from this uri and then deployed.

language
string

The language of the function (currently only python is supported).

name
string

The name of the function to deploy.

Responses

function.run

Executes a function given by name on the FaaS backend.

Search Academy for more details about: function.run.

query Parameters
args
string

The arguments to be passed to the function. Must be serializable to JSON. Can also be a custom uri starting with $uri: pointing to a document which is a JSON document or can be converted to a JSON.

evalArgs
string

Search the args param value recursively for PEL expressions and parse them?

name
required
string

(default) The name of the function to run.

Responses

gateway

gateway.endpoint.delete

query Parameters
uuid
required
string

The uuid of the endpoint to delete.

Responses

gateway.endpoint.get

query Parameters
uuid
required
string

The uuid of the endpoint to return.

Responses

gateway.endpoint.list

Lists all existing endpoint configurations.

Search Academy for more details about: gateway.endpoint.list.

Responses

gateway.endpoint.put

Adds a new endpoint configuration. Expects the config as JSON in the input. In case no uuid is given, a new entry is created.

Search Academy for more details about: gateway.endpoint.put.

query Parameters
authenticate
string

Is authentication needed for this endpoint? In this case, the Authorization header must exist and must contain a valid authentication token or credentials. This will overwrite the value of the input JSON if there is any.

enabled
string

Enables or disables this endpoint temporarily. This will overwrite the value of the input JSON if there is any.

groups
string

The authenticated user must be member to at least one of the groups from this list. If null or empty, no authorization check is done after successful authentication. Authentication is mandatory to be enabled for this. This will overwrite the value of the input JSON if there is any.

methods
string

A list of HTTP methods to allow. If this list contains *, all methods are allowed. This will overwrite the value of the input JSON if there is any.

mocked
string

If given, mocks this endpoint for testing (= doesn't forward to real endpoint). This will overwrite the value of the input JSON if there is any.

pattern
required
string

The wildcard pattern, the incoming request path must match in order to get called. This will overwrite the value of the input JSON if there is any.

polling
string

In case this endpoints is an async target, should a polling redirect be applied to the request so it polls for the result until has been processed or timed out?

roles
string

The authenticated user must be assigned to at least one of the roles from this list. If null or empty, no authorization check is done after successful authentication. Authentication is mandatory to be enabled for this. This will overwrite the value of the input JSON if there is any.

target
required
string

The target uri to be executed in case the request matches. This will overwrite the value of the input JSON if there is any.

uuid
string

The uuid of the endpoint to update. This will overwrite the value of the input JSON if there is any or create a new entry if missing.

weight
string

The weighting of this entry. In case a path matches two entries, the one with higher wight value will win.

Responses

gateway.group.list

Lists all groups allowed to be assigned to endpoints.

Search Academy for more details about: gateway.group.list.

Responses

gateway.role.list

Lists all roles allowed to be assigned to endpoints.

Search Academy for more details about: gateway.role.list.

Responses

global

global.config.property.list

query Parameters
scope
string

The scope to filter for. If null or empty, all config properties with any scope will be returned.

Responses

global.config.value.delete

query Parameters
key
required
string

The config key those value to delete.

scope
string

The scope to delete inside.

Responses

global.config.value.get

Returns the value of given config entry.

Search Academy for more details about: global.config.value.get.

query Parameters
key
required
string

The config key those value to return.

scope
string

The scope to search inside.

Responses

global.config.value.put

Saves a global config value. Overwrites any existing config entry with same key.

Search Academy for more details about: global.config.value.put.

query Parameters
key
required
string

The config key those value to save.

scope
string

The scope of the config entry.

value
required
string

The config value to save.

Responses

header

header.set

DEPRECATED. Use the set command instead. Sets any parameter value as header. For example header.set?key1=value1&key2=value2 would become the headers: key1: value1 and key2: value2

Search Academy for more details about: header.set.

Responses

htmlunit

htmlunit.website.form.find

Searches for a form on the page and sets is as vars.form model in PEL. If param 'select' is given, uses this PEL to find the form object. Otherwise tries to detect the form automatically by searching the page and using the first form found. Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: htmlunit.website.form.find.

query Parameters
select
string

A PE to select elements on a website for subsequent RPA commands. If null, form is tried to select automatically.

Responses

htmlunit.website.form.input

Searches for an input element with given name and sets the given value on it. Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: htmlunit.website.form.input.

query Parameters
select
string

A PE to select elements on a website for subsequent RPA commands. If null, form is tried to select automatically.

value
string

The value to be set on the selected input field.

Responses

htmlunit.website.form.submit

Searches for a submit button and clicks it. Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: htmlunit.website.form.submit.

query Parameters
select
string

A PE to select elements on a website for subsequent RPA commands. If null, form is tried to select automatically.

Responses

htmlunit.website.link.click

Searches for a link on current page and clicks it. Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: htmlunit.website.link.click.

query Parameters
select
string

A PE to select elements on a website for subsequent RPA commands. If null, form is tried to select automatically.

Responses

htmlunit.website.open

Opens a website and sets it as 'vars.page' in PEL. Additionally sets the current browser instance as 'vars.browser'. Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: htmlunit.website.open.

query Parameters
url
required
string

The url of the web page to open.

Responses

htmlunit.website.scrap

Scraps data from the current website and returns the result in the body.Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: htmlunit.website.scrap.

query Parameters
select
string

A PE to select elements on a website for subsequent RPA commands. If null, form is tried to select automatically.

xpath
required
string

Executes the given xpath expression on the current page and puts the result in the body. In case the xpath returns more than one results, adds an array to the body. Otherwise the body only contains the single result value.

Responses

http

http.delete

Executes a DELETE HTTP call to the given url.Returns the result from the server in the message body.

Search Academy for more details about: http.delete.

query Parameters
body
string

The value to be set in the body of the request (if it supports a body). If this param is missing, the value from the input parameter is used. If this value is null, no body is used.

credentials
string

DEPRECATED. Use param secret instead.

forceContentType
string

If this parameter is set to null or empty, the responsethe body from the response is returned in the same format as it is defined by the HTTP response Content-Type header. This can be overwritten by setting an explicit Content-Type here. When set, it will be tried to convert the response body to this content-type first and return it as this type then.

headers
string

A list of headers to append to the request. Can be a PEL pointing to a map or a list of name-value pair strings name:value or a comma separated string like: name1:value1, name2:value2.

ignoreErrorStatus
string

If true, any error status code from response will be ignored and no exception will be thrown. Otherwise, an exception will be thrown in case the request returns with status code >= 400.

includeRequest
string

If true, includes the HTTP request as JSON in the output.

includeResponse
string

If true, writes the HTTP response including headers and status code as JSON in the output.

passthru
string

If true, the response will be passed 1:1 to the caller of the pipeline without any changes. Status errors wont be handled and also no auto-conversion of body data will be applied. Note: It is not intended to alter the response in any kind when in passThru-mode.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

service
string

The name of the internal service to be called. If this parameter is given, it will prefix the url parameter, if exists. This parameter can also contain the internal port information separated by a colon like serviceName:port. If no port is given, it will be looked-up automatically.

url
string

(default) The url for the HTTP call.

Responses

http.get

Executes a GET HTTP call to the given url.Returns the result from the server in the message body or wrapped in the response JSON format depending on its configuration.

Search Academy for more details about: http.get.

query Parameters
body
string

The value to be set in the body of the request (if it supports a body). If this param is missing, the value from the input parameter is used. If this value is null, no body is used.

credentials
string

DEPRECATED. Use param secret instead.

forceContentType
string

If this parameter is set to null or empty, the responsethe body from the response is returned in the same format as it is defined by the HTTP response Content-Type header. This can be overwritten by setting an explicit Content-Type here. When set, it will be tried to convert the response body to this content-type first and return it as this type then.

headers
string

A list of headers to append to the request. Can be a PEL pointing to a map or a list of name-value pair strings name:value or a comma separated string like: name1:value1, name2:value2.

ignoreErrorStatus
string

If true, any error status code from response will be ignored and no exception will be thrown. Otherwise, an exception will be thrown in case the request returns with status code >= 400.

includeRequest
string

If true, includes the HTTP request as JSON in the output.

includeResponse
string

If true, writes the HTTP response including headers and status code as JSON in the output.

passthru
string

If true, the response will be passed 1:1 to the caller of the pipeline without any changes. Status errors wont be handled and also no auto-conversion of body data will be applied. Note: It is not intended to alter the response in any kind when in passThru-mode.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

service
string

The name of the internal service to be called. If this parameter is given, it will prefix the url parameter, if exists. This parameter can also contain the internal port information separated by a colon like serviceName:port. If no port is given, it will be looked-up automatically.

url
string

(default) The url for the HTTP call.

Responses

http.patch

Executes a PATCH HTTP call to the given url.Returns the result from the server in the message body.

Search Academy for more details about: http.patch.

query Parameters
body
string

The value to be set in the body of the request (if it supports a body). If this param is missing, the value from the input parameter is used. If this value is null, no body is used.

credentials
string

DEPRECATED. Use param secret instead.

forceContentType
string

If this parameter is set to null or empty, the responsethe body from the response is returned in the same format as it is defined by the HTTP response Content-Type header. This can be overwritten by setting an explicit Content-Type here. When set, it will be tried to convert the response body to this content-type first and return it as this type then.

headers
string

A list of headers to append to the request. Can be a PEL pointing to a map or a list of name-value pair strings name:value or a comma separated string like: name1:value1, name2:value2.

ignoreErrorStatus
string

If true, any error status code from response will be ignored and no exception will be thrown. Otherwise, an exception will be thrown in case the request returns with status code >= 400.

includeRequest
string

If true, includes the HTTP request as JSON in the output.

includeResponse
string

If true, writes the HTTP response including headers and status code as JSON in the output.

passthru
string

If true, the response will be passed 1:1 to the caller of the pipeline without any changes. Status errors wont be handled and also no auto-conversion of body data will be applied. Note: It is not intended to alter the response in any kind when in passThru-mode.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

service
string

The name of the internal service to be called. If this parameter is given, it will prefix the url parameter, if exists. This parameter can also contain the internal port information separated by a colon like serviceName:port. If no port is given, it will be looked-up automatically.

url
string

(default) The url for the HTTP call.

Responses

http.post

Executes a POST HTTP call to the given url.Returns the result from the server in the message body.

Search Academy for more details about: http.post.

query Parameters
body
string

The value to be set in the body of the request (if it supports a body). If this param is missing, the value from the input parameter is used. If this value is null, no body is used.

credentials
string

DEPRECATED. Use param secret instead.

forceContentType
string

If this parameter is set to null or empty, the responsethe body from the response is returned in the same format as it is defined by the HTTP response Content-Type header. This can be overwritten by setting an explicit Content-Type here. When set, it will be tried to convert the response body to this content-type first and return it as this type then.

headers
string

A list of headers to append to the request. Can be a PEL pointing to a map or a list of name-value pair strings name:value or a comma separated string like: name1:value1, name2:value2.

ignoreErrorStatus
string

If true, any error status code from response will be ignored and no exception will be thrown. Otherwise, an exception will be thrown in case the request returns with status code >= 400.

includeRequest
string

If true, includes the HTTP request as JSON in the output.

includeResponse
string

If true, writes the HTTP response including headers and status code as JSON in the output.

passthru
string

If true, the response will be passed 1:1 to the caller of the pipeline without any changes. Status errors wont be handled and also no auto-conversion of body data will be applied. Note: It is not intended to alter the response in any kind when in passThru-mode.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

service
string

The name of the internal service to be called. If this parameter is given, it will prefix the url parameter, if exists. This parameter can also contain the internal port information separated by a colon like serviceName:port. If no port is given, it will be looked-up automatically.

url
string

(default) The url for the HTTP call.

Responses

http.put

Executes a PUT HTTP call to the given url.Returns the result from the server in the message body.

Search Academy for more details about: http.put.

query Parameters
body
string

The value to be set in the body of the request (if it supports a body). If this param is missing, the value from the input parameter is used. If this value is null, no body is used.

credentials
string

DEPRECATED. Use param secret instead.

forceContentType
string

If this parameter is set to null or empty, the responsethe body from the response is returned in the same format as it is defined by the HTTP response Content-Type header. This can be overwritten by setting an explicit Content-Type here. When set, it will be tried to convert the response body to this content-type first and return it as this type then.

headers
string

A list of headers to append to the request. Can be a PEL pointing to a map or a list of name-value pair strings name:value or a comma separated string like: name1:value1, name2:value2.

ignoreErrorStatus
string

If true, any error status code from response will be ignored and no exception will be thrown. Otherwise, an exception will be thrown in case the request returns with status code >= 400.

includeRequest
string

If true, includes the HTTP request as JSON in the output.

includeResponse
string

If true, writes the HTTP response including headers and status code as JSON in the output.

passthru
string

If true, the response will be passed 1:1 to the caller of the pipeline without any changes. Status errors wont be handled and also no auto-conversion of body data will be applied. Note: It is not intended to alter the response in any kind when in passThru-mode.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

service
string

The name of the internal service to be called. If this parameter is given, it will prefix the url parameter, if exists. This parameter can also contain the internal port information separated by a colon like serviceName:port. If no port is given, it will be looked-up automatically.

url
string

(default) The url for the HTTP call.

Responses

http.response.set

Prepares the HTTP response in case this pipeline is executed in an HTTP request context. In case the pipeline is not running inside an HTTP request context, nothing happens in executing this command. Note: In case the pipeline was initiated by an HTTP request, you can access the request headers using the headers scope: headers.request.

Search Academy for more details about: http.response.set.

query Parameters
headers
string

The HTTP headers to be add as JSON or name-value pairs.

statusCode
string

The HTTP status code to be set on the HTTP response.

Responses

i18n

i18n.messages

Returns the i18n messages of given app, context and locale.

Search Academy for more details about: i18n.messages.

query Parameters
app
string

The app which contains the i18n messages.

context
string

The context of the i18n messages.

locale
string

The locale of the i18n message. For example: en, de, fr and so on.

Responses

iam

iam.apitoken

Obtains the apitoken (= offline token) in exchange for user credentials provided and writes it into the output.

Search Academy for more details about: iam.apitoken.

query Parameters
password
required
string

The user password.

username
required
string

The user name.

Responses

iam.authinfo

Adds header 'authUserId' - name of an user authenticated as a sender of the pipe message.

Search Academy for more details about: iam.authinfo.

Responses

iam.authorize

Authorizes pipeline execution and overwrites any existing authentication by this new, successful authentication. Additionally puts the successful authentication token on an internal stack. See iam.logout to pop from stack.Subsequent commands will be executed only if authorization was successful. Tries each existing parameter for authentication in this order. If multiple params are given, first existing one is used from this list: secret, accessToken, refreshToken, basic, username+password. Throws exception and exits pipeline execution on first not matching login try.

Search Academy for more details about: iam.authorize.

query Parameters
accessToken
string

The accessToken (bearer token) to be used for authentication.

basic
string

The basic authentication string to be used for authentication.

password
string

The password to be used for authentication.

refreshToken
string

The refreshToken to be used for authentication.

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

username
string

The username to be used for authentication.

Responses

iam.bruteforce.release

Releases any bruteforce lock for the given user. If user is not locked, nothing happens.

Search Academy for more details about: iam.bruteforce.release.

query Parameters
username
string

The name of the user to unlock. If not set, param uuid must be set.

uuid
string

The uuid of the user to unlock. If set, the param username is ignored.

Responses

iam.bruteforce.status

Returns the bruteforce status for a single user

Search Academy for more details about: iam.bruteforce.status.

query Parameters
username
string

The name of the user to return the status for. If not set, param uuid must be set.

uuid
string

The uuid of the user to return the status for. If set, the param username is ignored.

Responses

iam.cache.clear

Clears the security objects (and reloads roles where required). Note: Since this can be a heavy task and slow down the system, use it only in case really required!

Search Academy for more details about: iam.cache.clear.

Responses

iam.group.add.roles

Adds roles to a given group. Roles must exist beforehand.

Search Academy for more details about: iam.group.add.roles.

query Parameters
groupName
required
string

The unique group name.

groupUuid
required
string

The unique group uuid.

roleNames
required
string

The role names to join. Can be a comma separated list or a PEL pointing to a list.

Responses

iam.group.create

Creates a new group and puts its uuid in the body under key groupUuid. Throws exception if group already exists.

Search Academy for more details about: iam.group.create.

query Parameters
attributes
string

A map which holds optional attributes to be added to this group.

name
required
string

The unique group name.

roleNames
string

A list of roles to be assigned to this group on creation.

Responses

iam.group.delete

Deletes the group with given uuid or name. If group doesn't exist, nothing happens.

Search Academy for more details about: iam.group.delete.

query Parameters
name
string

The name of the group to delete.

uuid
string

The uuid of the group to delete. If given, name will be ignored.

Responses

iam.group.list

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

sortByName
string

If set, groups are returned as collection with the group name as key.

Responses

iam.group.list.names

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

Responses

iam.group.members

Lists all users which are member of any of the given groups. The response is a JSON array with these entities: https://www.keycloak.org/docs-api/5.0/rest-api/index.html#_userrepresentation

Search Academy for more details about: iam.group.members.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

name
string

The name of the group. If not set, param uuid must be set.

offset
number

The offset to start return entries.

uuid
string

The uuid of the group. If set, the param name is ignored.

Responses

iam.group.roles

Lists all effective role names, the given group is assigned to.

Search Academy for more details about: iam.group.roles.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

groupName
string

The name of the group. If not set, param uuid must be set.

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

uuid
string

The uuid of the group. If set, the param username is ignored.

Responses

iam.realm.create

Creates a new realm. Sets the uuid in the body under key realmUuid. Throws exception if realm already exists. Expects a JSON in the body of this structure: https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_realmrepresentation

Search Academy for more details about: iam.realm.create.

Responses

iam.role.add.composites

Adds existing composite roles to an existing role.

Search Academy for more details about: iam.role.add.composites.

query Parameters
composites
required
string

The composite role names to join. Can be a comma separated list or a PEL pointing to a list.

roleName
required
string

The unique role name to be loaded.

Responses

iam.role.members

Lists all users which are member of the given role. The response is a JSON array with these entities: https://www.keycloak.org/docs-api/5.0/rest-api/index.html#_userrepresentation

Search Academy for more details about: iam.role.members.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

roleName
string

The name of the role.

Responses

iam.role.put

Creates a new role and puts its role uuid in the body under key roleUuid. Throws exception if role already exists.

Search Academy for more details about: iam.role.put.

query Parameters
attributes
string

A map which holds optional attributes to be added to this role.

composites
string

A PEL list of roles names to add to this role as children. Makes this role a composite.

name
required
string

The unique role name.

Responses

iam.run.as

Executes the subsequent pipeline as different user if following two conditions are met. 1. currently logged-in user has permission CAN_RUN_AS_SOURCE 2. requested user has permission CAN_RUN_AS_TARGET

Search Academy for more details about: iam.run.as.

query Parameters
caching
string

Should the IAM cache used (= much faster)?

username
required
string

(default) The username, subsequent commands must be executed as. This user must have RUN_AS_SOURCE role assigned.

Responses

iam.search

Searches for specific entity in the IAM service matching the given filter. Returns the JSON representation of the given type as JSON array. See here for the representation types: https://www.keycloak.org/docs-api/11.0/rest-api/ .For example the type 'USER' would return a list of 'UserRepresentation'.

Search Academy for more details about: iam.search.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

type
required
string

The entity type to search for. Supported values are: ROLE, USER, GROUP, REALM.

Responses

iam.token

Obtains the full offline token response JSON in exchange for user credentials provided and writes into the output.

Search Academy for more details about: iam.token.

query Parameters
password
required
string

The user password.

username
required
string

The user name.

Responses

iam.token.logout

Logs out keycloak session associated with refreshToken and removes any refresh and access tokens from headers.

Search Academy for more details about: iam.token.logout.

query Parameters
refreshToken
required
string

The refresh token.

Responses

iam.token.refresh

Enrich headers with accessToken obtained from authorization server using refreshToken and returns the tokenResponse in the body.

Search Academy for more details about: iam.token.refresh.

query Parameters
refreshToken
required
string

The refresh token.

Responses

iam.user.add.groups

Adds groups to a user by group id or name and returns the group ids added.

Search Academy for more details about: iam.user.add.groups.

query Parameters
groupIds
string

The group ids to join. If not given, groupNames is required.

groupNames
string

The group names to join. If not given, groupIds is required.

username
string

The unique username. If uuid and username is given, uuid has precedence.

uuid
string

The unique username as uuid. If uuid and username is given, uuid has precedence.

Responses

iam.user.add.roles

Adds roles to a given user. Roles must exist beforehand.

Search Academy for more details about: iam.user.add.roles.

query Parameters
roleNames
required
string

The role names to join. Can be a comma separated list or a PEL pointing to a list.

userUuid
string

The unique username as uuid.

username
string

The unique username as uuid.

Responses

iam.user.create

Creates a new user and returns its uuid in the body. Throws exception if user already exists.

Search Academy for more details about: iam.user.create.

query Parameters
attributes
string

A map which holds optional attributes to be added to this user.

email
required
string

The unique email.

firstName
string

The optional first name.

groupNames
string

The optional groups the user joins.

lastName
string

The optional last name.

name
required
string

The unique username.

password
string

The password to be set for this user or null in order to let the user choose one on login.

roleNames
string

The optional roles (permissions) the user must join.

Responses

iam.user.delete

Deletes the user with given uuid.

Search Academy for more details about: iam.user.delete.

query Parameters
name
string

The name of the user to delete.

uuid
string

The uuid of the user to delete. If given, name will be ignored.

Responses

iam.user.get

Looks up a user returns it in the body if exists. The response is a JSON array of these entities: https://www.keycloak.org/docs-api/15.0/rest-api/#_userrepresentation

Search Academy for more details about: iam.user.get.

query Parameters
username
string

The name of the user. If not set, param uuid must be set.

uuid
string

The uuid of the user. If set, the param username is ignored.

Responses

iam.user.groups

Lists all groups, the given user is member of. By default, the response is a JSON array with these entities: https://www.keycloak.org/docs-api/5.0/rest-api/index.html#_grouprepresentation

Search Academy for more details about: iam.user.groups.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

username
string

The name of the user. If not set, param uuid must be set.

uuid
string

The uuid of the user. If set, the param username is ignored.

Responses

iam.user.list

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

includeGroups
boolean

Include all groups, for each user he is member of? Note: If true, the command execution becomes significantly slower!

includeRoles
boolean

Include all realm roles, for each user he is member of? Note: If true, the command execution becomes significantly slower!

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

Responses

iam.user.roles

Lists all effective role names, the given user is member of.

Search Academy for more details about: iam.user.roles.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

username
string

The name of the user. If not set, param uuid must be set.

uuid
string

The uuid of the user. If set, the param username is ignored.

Responses

if

if

Executes the subsequent pipeline only if given condition evaluates to true. Otherwise, jumps to the end of this block given by the 'if.end' command.

Search Academy for more details about: if.

query Parameters
else
string

*Deprecated*. Use the command 'if.else' instead. Defines the else part of the if statement. If value of if evaluates to 'false', the section right after this else statement is executed until the 'if.end' command.

end
string

*Deprecated*. Use command 'if.end' instead. Defines the end of of the if command block.

true
string

(default) The expression which must evaluate to true in order to execute the if block. Otherwise execution flow jumps to the 'if.end' command.

Responses

if.else

Executes all commands below this command up to the 'if.end' command in case initial 'if' command did not execute its containing command block.

Search Academy for more details about: if.else.

Responses

if.end

Defines the end of an 'if' command.

Search Academy for more details about: if.end.

Responses

imap

imap.delete

Deletes the selected mails by the given filter parameters, e.g. delete mails for the filters unreadOnly, folder, sender.

Search Academy for more details about: imap.delete.

query Parameters
folder
string

Optional filter parameter, Folder from where we want to delete the mails. Default value is INBOX.

from
string

Optional filter parameter, filter mails by provided sender.

host
required
string

Host for the mailbox. E.g. outlook.office365.com

secret
required
string

Secret, which contains the imap credentials and config json.

subjectContains
string

Limit to emails containing this text in subject.

unreadOnly
boolean

Limit to emails with this unread flag. If missing, no read filter will be applied.

Responses

imap.get

Searches the mails and returns all the mails retrieved using the given criteria.

Search Academy for more details about: imap.get.

query Parameters
folder
string

Optional filter parameter, search mails from particular given folder. Default value will be INBOX.

from
string

Optional filter parameter, filter mails by provided sender.

host
required
string

Host for the mailbox. E.g. outlook.office365.com

markSeen
boolean

Mark returned emails as seen (read)?

secret
required
string

Secret, which contains the imap credentials and config json.

subjectContains
string

Limit to emails containing this text in subject.

unreadOnly
boolean

Limit to emails with this unread flag. If missing, no read filter will be applied.

Responses

imap.mkdir

Creates the folder as a sibling of INBOX or inside INBOX or any other folder and returns the status.

Search Academy for more details about: imap.mkdir.

query Parameters
destinationFolder
string

Optional filter parameter, creates a folder inside the given folder. Default value is INBOX.

folderName
required
string

Folder name to create a folder inside a destination folder.

host
required
string

Host for the mailbox. E.g. outlook.office365.com

secret
required
string

Secret, which contains the imap credentials and config json.

Responses

imap.move

Moves the selected mails by the given filter parameters to the provided mailbox folder.

Search Academy for more details about: imap.move.

query Parameters
destinationFolder
required
string

Targeted folder for the mails to move.

from
string

Optional filter parameter, filter mails by provided sender.

host
required
string

Host for the mailbox. E.g. outlook.office365.com

secret
required
string

Secret, which contains the imap credentials and config json.

sourceFolder
string

Optional filter parameter, Source folder from where we want to move the mails. Default value is INBOX.

subjectContains
string

Limit to emails containing this text in subject.

unreadOnly
boolean

Limit to emails with this unread flag. If missing, no read filter will be applied.

Responses

job

job

Schedules any subsequent commands of the current pipeline and executes it at the scheduled times.

Search Academy for more details about: job.

query Parameters
schedule
required
string

A schedule string which configures the execution of the job. Can be one of: EVERY_5_MIN, EVERY_15_MIN, EVERY_30_MIN, EVERY_45_MIN, HOURLY, DAILY, WEEKLY, MONTHLY. Furthermore in development stage also EVERY_1_MIN is allowed. Throws an exception in production stage.

stop
string

Deprecated. Use the command job.stop instead. If this param is set, all other params are ignored. It contains the id of the job to be canceled.

Responses

job.list

Lists all scheduled pipeline jobs.

Search Academy for more details about: job.list.

Responses

job.status

Returns the status of a given job or null in case the job doesnt exist.

Search Academy for more details about: job.status.

query Parameters
pipelineKey
required
string

The pipelineKey of the job those status to return

Responses

job.stop

Stops the job with given id. Note: Usually it is not required to use this command. In order to stop and unregister a job, simply remove it from the pipeline or delete the pipeline.

Search Academy for more details about: job.stop.

query Parameters
pipelineKey
required
string

The pipeline key of the job to be cancelled.

Responses

jpa

jpa.query

Executes a JPA query and returns the result as JSON in the body. NOTE: This pipe is primarily meant for support to monitor the system. Its not accessible by default accounts! This can change at any time without notice!

Search Academy for more details about: jpa.query.

query Parameters
query
string

The JPA query to be executed.

Responses

json

json.validate

Validates the syntax of the JSON document given in the body or the input parameter. Can additionally validate the JSON using the given JSON schema. See https://json-schema.org/.

Search Academy for more details about: json.validate.

query Parameters
schema
string

The JSON schema to be used for schema validation. Can be a string, a PEL or a custom uri pointing to the location of the schema. In case no schema is defined, only a JSON syntax validation is performed.

throwException
string

If 'true', an exception is thrown in case of an syntax or schema validation error and the pipeline execution will be stopped. If set to 'false', the validation result will be returned as JSON in the output having the fields 'status' and 'message' whereas 'status' can be one of 'error' or 'ok'. In case of an validation error, all validation errors will be put into the 'message' field.

version
string

The version of the schema specification to be used.

Responses

log

log

Logs the given input message without changing it.

Search Academy for more details about: log.

query Parameters
level
string

The log level. Can be one of DEBUG, TRACE, INFO, WARN, ERROR.
If null or empty, INFO will be used.

message
required
string

(default) The message to log. Can be a string or a pipeline expression. If null or empty, the current pipeline message will be logged.

suffix
string

Suffix log message with path of persisted pipeline path if any. This simplifies searching in logs later.

Responses

log.list

Returns the given number of log lines from specified service.

Search Academy for more details about: log.list.

query Parameters
format
string

The format to be returned. One of: text, json

lines
number

The number of lines to print in case format is text. 100 is printed when not specified.

service
string

The service to print logs for. If null or empty, the 'hub' will be used.

Responses

log.list.email

Returns the email audit log properties. Only available for developers, system or support users.

Search Academy for more details about: log.list.email.

query Parameters
auditId
string

The audit id (uuid) of the logged email to return. If null or empty, all emails will be returned matching the given parameters.

createdAfter
string

Returns only those emails created after this date in ISO-8601 format. If null or empty, no after filter will be set.

createdBefore
string

Returns only those emails created before this date in ISO-8601 format. If null or empty, no before filter will be set.

Responses

log.list.environment

Logs the current environment properties. Only available for developers, system or support users.

Search Academy for more details about: log.list.environment.

query Parameters
interpolate
string

Return all properties with values interpolated? (= ${some.var} is resolved).

Responses

log.search

Searches the cloud logs and returns the last 30 entries per request. Supports pagination toscroll thru the entries. Does not return log.search log entries in order to not repeat itself.

Search Academy for more details about: log.search.

query Parameters
endDateTime
string

An ISO8601 date-time string to end the search at. If null or empty, all results up to now will be returned.

messageFilter
string

Message search string to filter the result by matching this string. Can be null or empty to return any entry.

nextPageToken
string

If this value is given, the next page of results of a previous search is loaded.

service
string

The service to search for log entries. Can be a list or comma separated service names. If null or empty, 'hub' will be used as default.

severity
string

The severity to search inside: DEBUG, INFO, WARNING, ERROR. Can be a list or comma separated text. If null or empty, searches in all severities.

startDateTime
string

An ISO8601 date-time string to start the search at. If null or empty, the date-time string from 24h before will be used.

typeFilter
string

A list of types of message logs to show. Possible values are: command, pipeline, security_audit, event_fired, webhook. If not set, all logs will be shown.

Responses

log.services

Returns all PIPEFORCE services for those logging is allowed / enabled.

Search Academy for more details about: log.services.

Responses

log.severities

Returns all severities (for example, DEBUG, INFO,...), supported by the logging system.

Search Academy for more details about: log.severities.

Responses

macro

macro

Defines a custom macro inside a pipeline. Such a macro can then be re-used by calling the command 'macro.run'.

Search Academy for more details about: macro.

query Parameters
args
string

The args to the macro as name-value pairs. If this macro will be re-called, these args will be default args which can be overwritten by the caller.

do
string

(default) The macro body to be executed as PEL.

flow
string

If set to true, the macro will be called by the pipeline flow even if 'name' parameter is set.

name
string

The optional name of the macro. If given, the macro will be registered under this name an can be re-called using the command 'macro.run'.

Responses

macro.run

Calls a defined macro by its name.

Search Academy for more details about: macro.run.

query Parameters
args
string

The optional args to the macro as name-value pairs.

name
string

(default) The name of the macro to call.

Responses

mail

mail.dump

Fetches new emails from given mail inbox and uploads them into a drive folder. Note: This command is for demo purposes only and not intended for production use.

Search Academy for more details about: mail.dump.

query Parameters
drivePassword
required
string

The password of the drive account to upload to.

driveUsername
required
string

The username of the drive account to upload to.

host
required
string

The email host.

inboxPassword
required
string

The password of the email inbox.

inboxUsername
required
string

The username of the email inbox.

path
string

The remote folder path in drive where to upload the emails into. For each new email a new sub folder will be created inside this path. If null or empty, uploads to the root folder of the logged in user.

port
required
number

The port of the email host.

protocol
string

The email protocol. One of 'imap' or 'pop3'.

Responses

mail.fetch

Fetches new emails from given mail inbox and returns them as JSON in the output. Note: This command is for demo purposes only and not intended for production use.

Search Academy for more details about: mail.fetch.

query Parameters
host
required
string

The email host.

inboxPassword
required
string

The password of the email inbox.

inboxUsername
required
string

The username of the email inbox.

newMailsOnly
string

Download only new mails since last processing? If true, the state of last fetch will be kept in property store. Any new fetch will be checked with this state and email will be downloaded only if not processed yet.

port
required
number

The port of the email host.

protocol
string

The email protocol. One of 'imap' or 'pop3'.

Responses

mail.send

Sends the given message as email. The message's subject and body will be used in the email accordingly.

Search Academy for more details about: mail.send.

query Parameters
attachments
string

Can be a comma separated list of URI Strings (e.g.: uri:drive:file1, uri:property:global/file2, uri:drive:file1, uri:classpath:pipeforce/file3). Also can point via PEL to a content object or a content collection. If the PEL points to an object differently to an uri or content object, serializes the value to string and attaches this as a text file.

from
string

The from email.

fromName
string

The from name.

message
string

By default, the body is used as email message. If this param is set, it will be used as message instead. Can also be a PE which points to a value to be used as the mail message.

model
string

The model to be placed into the template scope. If null, the message is used as model so you can access vars and body the same way as you would do in the pipeline.

replyTo
string

Reply-To email address is used when email receiver uses its mail client's 'reply' function. If not used,the from address is used automatically.

subject
string

The subject.

to
required
string

Comma separated list of to email addresses. Never null. If this is an expression and points to comma separated list, an array or a collection, will send an email to any of the entries.

Responses

mail.verify

Protects any subsequent pipe commands: Pipeline is only executed
in case the caller has verified that he is the owner of given
email address. To do so, a magic link (verification link) is sent
to his email account. Only if the user clicks on this link within
a certain amount of time (default is 10min), the subsequent pipe
commands are executed. From a technical point of view this is done
by putting the current state of the message into a cache which deletes
any entries older than 10min. Then, the email with the key to this
cache entry (=challenge) is send to the user. If the user clicks on
this link, the message is loaded from the cache using the challenge as
the key. If the user clicked within 10min, the entry is here, can be
loaded and the message execution can be resumed. Otherwise if the user
clicks after 10min on the link, no more entry in it. Execution fails.
User has to re-request the link. Note: This command is for demo purposes only and not intended for production use.

Search Academy for more details about: mail.verify.

query Parameters
challenge
string

The challenge which will become part of the link in the email when redirecting back.

email
required
string

The email address to send the challenge to.

email.blacklist
string

A comma separated list of blocked email addresses. Also supports wildcards *. Example: *@domain.com, my@email.com

email.whitelist
string

A comma separated list of allowed email addresses. Also supports wildcards *. Example: *@domain.com, my@email.com

Responses

map

map

DEPRECATED. Use the set command instead. Maps, calculates and converts data from fields of the input message to fields of the output message.

Search Academy for more details about: map.

query Parameters
reverse
boolean

Reverses the left and right expressions. This is a workaround if for some reason the left sidefor example may not contain special characters.

Responses

memory

memory.info

Shows the current system info like memory consumption. Available for system, support and developer users only.

Search Academy for more details about: memory.info.

Responses

message

message.ack

Acks message for pipeline initiated by message.receive with autoack=false.

Search Academy for more details about: message.ack.

Responses

message.binding.delete

query Parameters
args
string

Custom args to be passed to the binding to remove.

destinationName
required
string

The name of the destination of the binding to remove.

destinationType
string

The type of the destination of the binding to remove. One of queue or exchange.

exchange
string

The exchange involved in this binding to remove.

routingKey
string

The routing key to be used for the binding to remove.

Responses

message.binding.put

Creates a new binding. Returns the binding info as JSON.

Search Academy for more details about: message.binding.put.

query Parameters
args
string

Custom args to be passed to the binding creation.

destinationName
required
string

The name of the destination of the binding.

destinationType
string

The type of the destination of the binding. One of queue or exchange.

exchange
string

The exchange involved in this binding.

routingKey
required
string

The routing key to be used for the binding

Responses

message.drop

Drops message without redelivery for pipeline initiated by message.receive with autoack=false.

Search Academy for more details about: message.drop.

Responses

message.exchange.delete

query Parameters
name
required
string

The name of the exchange to delete.

Responses

message.exchange.put

query Parameters
args
string

Optional args to the exchange.

autodelete
string

Delete the exchange if now longer in use?

durable
string

If true, exchange will survive server restart

name
required
string

The name of the exchange to create.

type
string

The type of the exchange like topic, fanout, direct, headers, system or a custom one starting with x-

Responses

message.list

Returns all messages of a given queue.

Search Academy for more details about: message.list.

query Parameters
ackmode
string

The ack mode to be used. One of: ack_requeue_true, reject_requeue_true, ack_requeue_false, reject_requeue_false

count
string

Number of messages to return in list. Max is 100.

encoding
string

The encoding to be used. One of auto or base64.

queue
required
string

The name of the queue to return messages from.

truncate
string

Truncate returned messages this number of bytes. If empty or negative, all bytes are returned.

Responses

message.nack

Nacks message with redelivery for pipeline initiated by message.receive with autoack=false.

Search Academy for more details about: message.nack.

Responses

message.queue.delete

query Parameters
empty
string

Delete only if empty?

name
required
string

The name of the queue to delete.

unused
string

Delete only if not is use?

Responses

message.queue.find

Returns details for all message queues matching the given search filter.

Search Academy for more details about: message.queue.find.

query Parameters
includeBindings
string

Include the bindings for each queue?

Responses

message.queue.get

Returns details about a message queue.

Search Academy for more details about: message.queue.get.

query Parameters
name
required
string

The name of the queue to return.

Responses

message.queue.purge

query Parameters
name
required
string

The name of the queue to purge.

vhost
string

The vhost of the queue.

Responses

message.queue.put

Creates or updates a queue. Returns the queue info as JSON.

Search Academy for more details about: message.queue.put.

query Parameters
args
string

Custom args to be passed to the queue creation.

autodelete
string

Should the server delete the queue if it is no longer in use?

durable
string

Should the queue be in durable mode?

exclusive
string

Is it an exclusive queue?

name
required
string

The name of the queue.

Responses

message.receive

Listens for cluster internal messages matching the given criteria. If matched, executes the pipeline commands below this command.

Search Academy for more details about: message.receive.

query Parameters
autoack
string

The acknowledge mode to be used. If false, pipes message.ack, message.nack and/or message.drop are expected in pipeline. I pipeline does not aknowledge by its own, message.ack is called after successful pipeline execution, or message.nack on any errors. manual mode can be used only when none of maxBatchSize and maxBatchItems are used.

deleteQueue
string

DEPRECATED. Use parameter managed instead. Delete the queue if this receive listener got removed or changed? Note: If this value is set to false, you have to track and cleanup queues manually, those are no longer in use!

exchange
string

The exchange to be used. If null, the default exchange will be used.

failureAction
string

The action to do on pipeline failure/all retry attempts ended with failures. Possible values are: 'nack' = Message broker will try to redeliver (default). 'drop' = Message broker will drop or move to dead letter queue if defined.

includeMessageDetails
string

If true, the messages details (properties) and headers will be included in the result message in the body.
So the resulting message JSON will be then: {"details": ..., "headers": ..., "payload": ...}.
NOTE: The details returned then are specific to the underlying messaging broker such as RabbitMQ or ActiveMQ
for example. So you should not rely on these information in case you would like to stay
independent from the message broker in the backend! In doubt ask your PIPEFORCE Coach.

includeMessageHeaders
string

If true, the messages headers will be included in the result message in the body.
So the resulting message JSON will be then: {"headers": ..., "payload": ...}

key
required
string

The routing key pattern to listen for.

manageQueue
string

Auto-manage queue. Possible values are: 'false' = Queue must be created and deleted manually. 'create' = Queue will be created if not exists (default). 'delete' = Queue will be deleted automatically if this command get removed or changed. 'create,delete' = Combines create and delete.

managed
string

DEPRECATED. Use param manageQueue instead.

maxBatchItems
string

Collects the amount of messages up to the given number of maxBatchItems and then processes this pipeline with all collected messages at once. All batched messages will be provided as array into the event body. If this parameter is null, empty or negative, no batching is used at all: Processes each message as single call. If this parameter is used together with 'maxBatchSize' the one which matches first is considered.

maxBatchSize
string

Collects messages up to the given maxBatchSize in bytes and then processes this pipeline with all collected messages at once. All batched messages will be provided as array into the event body. If this parameter is null, empty or negative, no batching is used at all: Processes each message as single call. Maximum value can be 200KB (204800). If this parameter is used together with 'maxBatchItems' the one which matches first is considered.

queue
string

The name of the queue to receive messages from. If null, the default queue name will be used.

retryAttempts
string

The number of retry attemptsDefines.

retryDelay
string

The number of milliseconds to wait after each attempt.

Responses

message.send

Sends a new message to the message service. Uses the pipeline message body as payload.

Search Academy for more details about: message.send.

query Parameters
contentType
string

Sets the content type of the message payload.

encoding
string

The encoding of the message payload.

evalPayload
string

Search the payload param value recursively for PEL expressions and parse them?

exchange
string

The exchange to be used. If null, the default exchange will be used.

headers
string

The headers to be send with the message. Values in here will overwrite any already existing header values.

key
required
string

The routing key to send the message as.

payload
string

The payload to be send in the message. If parameter is missing, the message body will be used as payload.

Responses

microsoft

microsoft.graph.client

query Parameters
expression
secret
string

The secret to be used to access the endpoint.

Responses

microsoft.sharepoint.document.get

query Parameters
hostName
string

Host name of the sharepoint site

path
string

This path contains the folder path in sharepoint site where user want to upload file

secret
string

This is the name of secret that has been setup in Secret module (the secret must contain client_id, client_secret)

site
string

This is the name of site in sharepoint where user want to upload file in the site folder.

tenantId
string

Tenant Id of the sharepoint site

Responses

microsoft.sharepoint.document.mkdir

query Parameters
hostName
string

Host of the sharepoint site

path
string

This path contains the folder path in sharepoint site where user want to upload file

secret
string

This is the name of secret that has been setup in Secret module (the secret must contain client_id, client_secret)

site
string

This is the name of site in sharepoint where user want to upload file in the site folder.

tenantId
string

Tenant Id of the sharepoint site

Responses

microsoft.sharepoint.document.put

query Parameters
hostName
string

Host of the sharepoint site

path
string

This path contains the folder path in sharepoint site where user want to upload file

secret
string

This is the name of secret that has been setup in Secret module (the secret must contain client_id, client_secret)

site
string

This is the name of site in sharepoint where user want to upload file in the site folder.

tenantId
string

Tenant Id of the sharepoint site

Responses

microsoft.teams.send

Sends a message to a Microsoft Teams channel.
"Note: This command needs an additional license + secret setup.
"See documentation for further details how to set this up.

Search Academy for more details about: microsoft.teams.send.

query Parameters
channelId
required
string

The id of the teams channel to send the message to.

secret
string

The secret to be used to authenticate in Microsoft 365 Cloud. If not set, the default secret will be used: DEFAULT_MICROSOFT_365_SECRET

teamId
required
string

The id of the team to send the message to.

text
required
string

The text message to be send to Teams.

Responses

mock

mock

Creates and registers a mock for a command or pipeline.

Search Academy for more details about: mock.

query Parameters
command
required
string

The name of the command to mock

contextId
string

The id of the mock context this mock is part of.
If null or empty, the mock is not assigned to a context.
If param is missing or is set to CURRENT: The current mock context id will be extracted from the
header: mock_context_id. If there is no such id in header,
a new one will be created and set.

namespace
string

The namespace this mock is enabled for.
If null, empty or CURRENT: Current namespace will be assigned.

pipeline
string

The pipeline path this mock is enabled for.
After the pipeline execution was finished, this mock will be deleted.
If null or empty or param is missing, no pipeline will be assigned.
If CURRENT: The current pipeline will be set in case it is a persisted one.

requestId
string

The request id this mock is enabled for.
If null or empty, the mock is not assigned to a requestId.
After the request is finished, this mock will be deleted.
If param is missing or is set to CURRENT: The current request id will be set.

thenSetBody
string

The value to be returned in the body when this mock applies. If not defined, the current body will not be changed.

thenSetVar
string

Defines a map which will be set as vars.

traceId
string

The traceId this mock is enabled for.
If null or empty, no traceId will be assigned.
If CURRENT: The current traceId will be set.

when
string

The mock expression: When this evaluates to true, the mock will be applied.

Responses

mock.cleanup

Removes all mocks from the mock service matching the given criteria.

Search Academy for more details about: mock.cleanup.

query Parameters
command
string

Includes all mocks assigned to this command.
If null, filter is not active.

lastAccessBefore
string

Includes all mocks for deletion accessed before this timestamp in ms.
If null, filter is not active.

mockContextId
string

Includes all mocks assigned to the current mock context id.
If null or false, filter is not active.

namespace
string

Includes all mocks assigned to this namespace.
If null, current namespace is used.

pipeline
string

Includes all mocks assigned to this pipeline path,
If null, filter is not active.

requestId
string

Includes all mocks assigned to the given request id.
If null or false, filter is not active.

traceId
string

Includes all mocks assigned to this traceId
If null, current trace id is used.

Responses

monitor

monitor

Returns actuator monitoring details.

Search Academy for more details about: monitor.

query Parameters
endpoint
string

(default) The endpoint path to return metrics for. If null or empty, the root will be returned: All endpoints will be listed.

Responses

monitor.alert.send

Sends and logs a technical alert to the support team.
Note: Alerts are only meant to target the AE and support / operations team in case
something technically critically happened (for example: Message queue full) in the instance or inside an app.
If you need to send business related alerts (example: The invoice is overdue) to business users,
consider to use notifications instead.
Since alert messages are sent to logs and other queues they must be short.

Search Academy for more details about: monitor.alert.send.

query Parameters
component
string

The component this alert belongs to.
If not set, then APP/{{appName}} will be used whereas appName will be extracted from current pipeline path.
If this is not called from within a persisted pipeline and this param is not given = error.
Must not be longer than 50 characters. Will be stripped otherwise.

message
required
string

The alert message to be sent.
Must not be longer than 150 characters. Will be stripped otherwise.

monitorName
required
string

The name of the alert monitor check to identify and classify what was checked.
Must not be longer than 50 characters. Will be stripped otherwise.

Responses

notification

notification.send

Creates and puts a mime notification to the queue for further processing and sending.
You can create a mime notification as JSON from scratch and set it as input param
(see public docs about the mime format required) or you can use the params of this command
to construct such a mime notification using these values. In case both are
given (params and input JSON), params will have precedence.

Search Academy for more details about: notification.send.

query Parameters
attachments
string

A list of PIPEFORCE URI strings (e.g.: $uri:drive:file1, $uri:property:global/file2, $uri:drive:file1, $uri:attachment:123) to attach to the notification in case the notification target channel supports attachments. In case the

bcc
required
string

A list of to recipient CC addresses in case target channel supports BCC.

cc
required
string

A list of to recipient CC addresses in case target channel supports CC.

fromAddress
string

The optional from address target channel supports this.

fromName
string

The optional from name in case target channel supports this.

headers
string

Key-value pairs to be set as headers in the mime message. These headers will overwrite any already existing one.

message
string

The message to be send to the target channel.

replyTo
string

Reply-To address is used when a recipient uses its client's reply function (for example inside an email client). In case this param is not given, the fromAddress is used as default.

subject
string

The optional subject in case target channel supports this.

to
required
string

A list of to recipient TO addresses.

Responses

pdf

pdf.create

Creates a new PDF with blank pages.

Search Academy for more details about: pdf.create.

query Parameters
format
string

The format of the pages to create. One of: A0, A1, A2, A3, A4, A5, A6, LEGAL, LETTER

pages
string

The number of pages to create. May not be 0 or negative.

Responses

pdf.from.doc

This command is used to convert Word (.doc) to PDF.

Search Academy for more details about: pdf.from.doc.

Responses

pdf.from.docx

This command is used to convert Word(.docx) to PDF.

Search Academy for more details about: pdf.from.docx.

Responses

pdf.from.png

This command is used to convert PNG to PDF.

Search Academy for more details about: pdf.from.png.

Responses

pdf.merge

This command is used to merge PDFs.

Search Academy for more details about: pdf.merge.

Responses

pdf.stamp

Writes both text or images to a pdf file under a specific layer. It expects the pdf file as a pipeline resource in the body and transforms the result back also as a pipeline resource in the body.

Search Academy for more details about: pdf.stamp.

query Parameters
bottom_margin
string

Considers page bottom margin when applying stamp.

fontColor
string

The hex code color of the font like #FF0000, #0000FF

fontSize
string

The size of the font.

font_family
string

Considers font style that we can apply to stamp.

height
string

Considers height of the text when applying stamp.

image
string

The image to write on the pdf file. One of param text or image is required. The image must be a content uri an existing content object in the message or a built-in stamp name like APPROVED for example.

left_margin
string

Considers page left margin when applying stamp.

opacity
number

Amount of opacity that should be applied (Must be a value between >= 0.0 and <= 1.0, 0.0 means no opacity, 1.0 means invisible.)

right_margin
string

Considers page right margin when applying stamp.

rotation
number

Specifies how many degrees the element should be rotated. Negative degree means rotated below x-axis, positive degree means above. Must be a value between >= -180.0 and <= 180.0

text
string

The text to write on the PDF file. It is required to either enter text or image.

top_margin
string

Considers page top margin when applying stamp

width
string

Considers width of the text when applying stamp.

Responses

pdf.to.png

This command is used to convert PDF to PNG.

Search Academy for more details about: pdf.to.png.

Responses

pinboard

pinboard.item.delete

Deletes a pinboard item of currently logged-in user.

Search Academy for more details about: pinboard.item.delete.

query Parameters
uuid
string

The uuid of the pinboard item to delete.

value
string

The value of the pinboard item to delete.

Responses

pinboard.item.get

Lists all pinboard items or returns a concrete one by uuid.

Search Academy for more details about: pinboard.item.get.

query Parameters
uuid
string

The uuid of the pinboard item to return. If not given, all pinboard items of currently logged-in user will be returned, ordered by order value.

Responses

pinboard.item.put

Creates a new pinboard item or updates an existing one.

Search Academy for more details about: pinboard.item.put.

query Parameters
color
string

The color of the icon. If null, the default color will be used.

icon
string

The icon of the pinboard item. If null, a default icon will be used.

name
required
string

The name of the pinboard item.

order
string

The order of the item in the pinboard as int value. ASC.

uuid
string

The uuid of the pinboard item to update. If not given, a new one will be created.

value
required
string

The pinboard value.

Responses

pipeline

pipeline.debug.status

Returns the status of a running debugging session.

Search Academy for more details about: pipeline.debug.status.

query Parameters
pipelineKey
string

(Deprecated, use pipelinePath instead) The property key of the pipeline to monitor. Required only on first call. Ignored if sessionId is set.

pipelinePath
string

The property path of the pipeline to monitor. Required only on first call. Ignored if sessionId is set.

sessionId
string

The debug session id. If null or empty, a new debugging session is created.

Responses

pipeline.delete

query Parameters
name
required
string

The exact name of the pipeline to delete.

Responses

pipeline.get

Returns all persisted pipelines matching the given name.

Search Academy for more details about: pipeline.get.

query Parameters
name
string

The name of the pipeline to search for. Supports wildcard * matching. If null or empty, returns all entries.

Responses

pipeline.put

Persists a new pipeline to the system or updates an existing one. The pipeline yaml is expected in the body. Can be null. Returns the updated property in the output.

Search Academy for more details about: pipeline.put.

query Parameters
name
required
string

The unique name of this pipeline within this namespace.

Responses

pipeline.run

Loads and executes the persisted pipeline and returns its result in the output.

Search Academy for more details about: pipeline.run.

query Parameters
headers
string

A headers map to be put on this pipeline. Note: Any header in this map will overwrite the header in the target pipeline headers scope.

key
string

Deprecated. Use path instead. The key of the pipeline in the property store to load and executed. Can be relative inside current namespace or qualified.

name
string

DEPRECATED. Use param key instead. The key of the pipeline in the property store to load and executed. Can be relative inside current namespace or qualified.

path
required
string

The path of the pipeline in the property store to load and executed. Can be relative inside current namespace or qualified.

vars
string

A variables map to be put on this pipeline. Note: Any var in this map will overwrite the var in the target pipeline vars scope.

Responses

portal

portal.config.get

Returns all global configuration values for the portal.

Search Academy for more details about: portal.config.get.

Responses

property

property.attachment.checksum

Calculates and verifies the checksum of a property attachment. Calculating the checksum of an attachment using this command also means closing it, so that no more chunks can be added. The checksum of an attachment is calculated by concatenating the MD5 of all chunks into a single MD5 digest.

Search Academy for more details about: property.attachment.checksum.

query Parameters
attachmentUuid
string

The uuid of the attachment to be checked. If this is given, path and name params are ignored.

checksum
string

The checksum to be used for verification. If not given, no verification is done, but checksum of attachment is calculated and stored anyhow.

collectionName
string

The collection of attachment to be checked. If not specified, root attachment is expected.

key
string

Deprecated. Use path instead. The key of the property containing the attachments.

name
string

The name of the attachment to be checked.

path
string

The path of the property containing the attachments.

uuid
string

The uuid of the property containing the attachments. If this is given, path param is ignored.

Responses

property.attachment.chunk.content

Returns the content (data) of a chunk of an attachment in the output as input stream. Returns empty body if chunk was not found.

Search Academy for more details about: property.attachment.chunk.content.

query Parameters
attachmentUuid
string

The uuid of the attachment this chunk belongs to. If this is given, path and name params are ignored.

collectionName
string

The collection of attachment requested. If not specified, root attachment is expected.

index
string

The index of the chunk to return.

key
required
string

Deprecated. Use path instead. The key of the property this attachment belongs to.

name
string

The name of the attachment this chunk belongs to.

path
string

The path of the property this attachment belongs to.

Responses

property.attachment.chunk.get

Returns the metadata of an chunk of an attachment. Throws error in case property or attachment doesn't exist. Return null in case no chunk exists at given index.

Search Academy for more details about: property.attachment.chunk.get.

query Parameters
attachmentUuid
string

The uuid of the attachment this chunk belongs to. If this is given, path and name params are ignored.

collectionName
string

The collection of attachment requested. If not specified, root attachment is expected.

index
string

The index of the chunk to return.

key
string

Deprecated. Use path instead. The key of the property this attachment belongs to.

name
string

The name of the attachment this chunk belongs to.

path
string

The path of the property this attachment belongs to.

Responses

property.attachment.chunk.put

Adds a chunk of data to the given attachment. Note: A chunk may not be bigger than 10MB. Otherwise, it gets rejected from the backend.

Search Academy for more details about: property.attachment.chunk.put.

query Parameters
attachmentUuid
string

The uuid of the attachment to add the chunk to. If this is given, path and name params are ignored.

collectionName
string

The collection of attachment. If not specified, root attachment is expected.

content
string

The content to be added to the chunk. If this parameter is null or empty, the body will be used as content instead.

index
string

The index of the chunk. If given, the content of the chunk at given index is replaced with the new content. If null or empty, a new chunk is added to the attachment.

key
string

Deprecated. Use path instead. The key of the property this attachment belongs to.

name
string

The name of the attachment this chunk belongs to.

path
string

The path of the property this attachment belongs to.

storageId
string

The id of the storage to be used in the backend to store the binary data of the attachment. Possible values: database, drive.

Responses

property.attachment.content

Returns the content of an property attachment as a byte stream content object into the output.

Search Academy for more details about: property.attachment.content.

query Parameters
attachmentUuid
string

The uuid of the attachment to returns its content. If this is given, path and name params are ignored.

collectionName
string

The collection of attachment. If not specified, root attachment is expected.

key
string

Deprecated. Use path instead. The key of the property this attachment belongs to.

name
string

The name of the attachment.

path
string

The path of the property this attachment belongs to.

Responses

property.attachment.delete

Removes an attachment and its content from the property store.

Search Academy for more details about: property.attachment.delete.

query Parameters
attachmentUuid
string

The uuid of the attachment to delete. If this is given, path and name params are ignored.

collectionName
string

The collection of attachment to be deleted. If not specified, root attachment will be deleted.

key
string

Deprecated. Use path instead. The key of the property containing the attachment.

name
string

The name of the attachment to be deleted.

path
string

The path of the property containing the attachment.

Responses

property.attachment.get

Returns an attachment of a property (without content).

Search Academy for more details about: property.attachment.get.

query Parameters
attachmentUuid
string

The uuid of the attachment to return. If this is given, path and name params are ignored.

collectionName
string

The collection of attachment requested. If not specified, root attachment is expected.

key
string

Deprecated. Use path instead. The key of the property this attachment belongs to.

name
string

The name of the attachment to return.

path
string

The path of the property this attachment belongs to.

Responses

property.attachment.list

Lists all attachments of a given property. The content is not part of this list. Use property.attachment.chunk.get in order to retrieve the content data.

Search Academy for more details about: property.attachment.list.

query Parameters
collectionName
string

The collection of attachments to list. If given, returns only those attachments which belong to this collection. Otherwise, all attachments are returned.

key
string

Deprecated. Use path instead. The key of the property to list its attachments for.

path
required
string

The path of the property to list its attachments for.

propertyUuid
string

The uuid of the property those attachments to return. If this is given, path is ignored.

Responses

property.attachment.put

Creates and adds an attachment to a property.
Optionally with binary payload data or content object in body.
Overwrites / updates any existing attachments with same name.
The attachment can be added in three ways:
A) A single content object or a collection of content objects in the input is given in input,
then its payload and metadata is used to create the attachment(s).
B) Data different to a content object is given in the input.
Then this data will be used as the payload for the attachment.
C) Input is null or empty. Then an empty attachment without any payload will be created.
In case B) and C) the additional parameters name, contentType and length are mandatory.
In case A) The parameters name, contentType and length are optional and will be used as forced
values if given.

Search Academy for more details about: property.attachment.put.

query Parameters
collectionName
string

The collection (= folder) of the attachment.
If not specified, attachment will be added to root "folder" (null).

content
string

The content to add. If null, the data from input will be added.
In case you would like to explicitly set no content at all (also not from the body), set this value to: false.

contentType
string

The content type to be used for the attachment.
Overwrites the value of the content object (if any).

createProperty
string

Creates the property if it doesnt exist.
Requires path param in case property must be created.
If param is false and property doesnt exist, will cause an error.

key
string

Deprecated. Use path instead. The key of the property containing the attachments.

length
string

The length of the overall attachment.
Length of content given in input (if any) must be equal to or smaller than this value.

name
string

The forced name of the attachment to be created.
If an attachment with this name already exists, updates the existing one.
Overwrites the name of the underlying content object (if any).

path
string

The path of the property this attachment will be added.

storageId
string

The id of the storage to be used in the backend to store the binary data of the attachment.
Possible values: database, drive.

uuid
string

The uuid of the property this attachment will be added.
If uuid is given, path param is ignored.

Responses

property.attachment.put.uri

Sets property attachment to be symlink to resource referenced by uri.

Search Academy for more details about: property.attachment.put.uri.

query Parameters
collectionName
string

The collection of attachment. If not specified, root attachment will be created.

key
string

Deprecated. Use path instead. The key of the property this attachment belongs to.

name
required
string

The name of the attachment.

path
required
string

The path of the property this attachment belongs to.

uri
required
string

The uri of resource to point symlink to.

Responses

property.copy

Copies a property from one key to another. If target property already exists, overwrites it. NOTE: Doesnt copy the attachments.

Search Academy for more details about: property.copy.

query Parameters
key
string

Deprecated. Use path instead. The origin key of the property.Otherwise a new entry is created.

path
string

The origin path of the property.Otherwise a new entry is created.

to
required
string

The target key to copy the property to. If a property with this key already exists, it will be overwritten.

Responses

property.count

Counts the properties by given pattern.

Search Academy for more details about: property.count.

query Parameters
includeTrashed
string

Include also properties moved to trash bin in the search?

pattern
required
string

The key pattern of the properties to count. Also supports path pattern matching whereas * matches a single part inside a directory in the key and ** everything. For example '/pipeforce/namespace/user/**' would return all properties of all users in the given namespace. Also sub levels of this path. To avoid sub-leveling use the * instead: '/pipeforce/namespace/user/*'. This would return /pipeforce/namespace/user/max' but not /pipeforce/namespace/user/max/contracts'.

Responses

property.delete

Deletes one or more existing properties matching the given search pattern. Use this command with care!

Search Academy for more details about: property.delete.

query Parameters
pattern
required
string

The path pattern of the properties to delete. All matching properties will be deleted!

trashBin
string

In case this parameter is set to true, the property wont be removed but moved to the trash bin instead (= flagged with trash lock).

trashBinTimeToLive
string

The time in millis after the property must be removed from bin and fully deleted. If set to null or empty, the system defaults will apply for final deleting trashed properties. This is typically a value between 30 and 90 days.

Responses

property.exists

Checks whether a given property exists and returns the boolean result in the body.

Search Academy for more details about: property.exists.

query Parameters
key
string

Deprecated. Use path instead. The path key of the property to check for.

path
required
string

The path of the property to check for.

Responses

property.get

Returns the property with given key.

Search Academy for more details about: property.get.

query Parameters
key
string

Deprecated. Use path instead. The relative or absolute (with namespace) property key. If uuid is given, this parameter is ignored. One of of uuid or path is mandatory.

path
string

(default) The relative or absolute (with namespace) property path. If uuid is given, this parameter is ignored. One of of uuid or path is mandatory.

uuid
string

The uuid of the property. If this parameter is given, parameter path is ignored. On of uuid or path is mandatory.

Responses

property.import

Imports properties given as JSON document in the body into the property store.
NOTE: Can be executed only by user with ROLE_SUPPORT permission!

Search Academy for more details about: property.import.

query Parameters
sendEvents
string

Send the property events on import?

strategy
string

What to do if property already exists? One of: update (overwrites with new value), skip (skips this property), error (stops with error).

Responses

property.json.search

Queries all properties of type application/json using an abstracted where clause JSON format.
Returns an array of format [{"path": "string", "uuid": "string", "created": int, "value": object|array}]

Search Academy for more details about: property.json.search.

query Parameters
condition
required
string

Defines the WHERE condition as a JSON structure in order to filter the result.
The format of of this JSON is like this (and / or can also be nested):
{ "and|or": [{"field": "string", "op": "string", "value": "string", "type": "string", "format": "string"}, ...]}
Note: These char sequences are not allowed in the value field for
security reasons and will be removed before executing the query: ' " ; -- /* */ < > # & \ = ..
Supported operations: =, !=, <, > , <=, >=, like, ilike, in, not in

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

orderBy
string

Defines the order of the returned entries.
If missing, entries will be ordered by creation date by default.
The format must be like this:
[{"field": "string", "direction": "asc", "type": "string"}, ...]
If direction is missing, asc is used as default.
Supported directions: asc, desc.
If type is missing, string is used by default.
Supported types: string, integer, number, boolean.

pattern
required
string

The property pattern of properties to apply the search to.

Responses

property.list

Lists all properties from the store.

Search Academy for more details about: property.list.

query Parameters
after
string

An optional timestamp to return only properties created after this time.

before
string

An optional timestamp to return only properties created before this time.

excludePatterns
string

A list of path patterns of those properties to exclude from the result.

filter
string

This parameter is deprecated. Use param 'pattern' instead.

includeTrashed
string

Include also properties moved to trash bin?

limit
string

The limit of max results to return. If not given, null, <= 0 or > 1000, will be set to the default value 1000.

offset
string

The offset to return results from. If not given, null or <= 0, will be set to 0.

pattern
string

(default) The path pattern of the properties to search for. Also supports key pattern matching whereas * matches a single part inside a directory in the key and ** everything. For example '/pipeforce/namespace/user/**' would return all properties of all users in the given namespace. Also sub levels of this key. To avoid sub-leveling use the * instead: '/pipeforce/namespace/user/*'. This would return /pipeforce/namespace/user/max' but not /pipeforce/namespace/user/max/contracts'.

sorting
string

A list of sortBy: name and sortOrder: asc|desc.

tags
string

BETA: The name-value pair of tags to filter the properties for. In case a property must NOT have the given tag, the name must start with ! . Note: If tags are given, all other filter params except pattern and includeTrashed will be ignored!

Responses

property.lock.get

Returns the lock tag for a given property. In case there is no lock for this property, null is returned.

Search Academy for more details about: property.lock.get.

query Parameters
key
required
string

Deprecated. Use path instead. The key of the property to return the lock tag for.

path
required
string

The path of the property to return the lock tag for.

Responses

property.lock.put

Creates a lock on a given property. In case someone tries to change or delete a locked property without being part of the exclusive guild, an exception is thrown.

Search Academy for more details about: property.lock.put.

query Parameters
details
string

Some optional data to be set on the lock.

key
string

Deprecated. Use path instead. The key of the property to lock.

name
string

In case the lock is of type 'role' or 'group', this parameter is mandatory and defines the name of the role or group, this lock is exclusive to. In case the type of the lock is 'namespace', this parameter is optional. If given, this name is used as namespace to create the lock for, otherwise the current namespace of the instance is used. In case the type of the lock is 'global', this parameter will be ignored.

path
required
string

The path of the property to lock.

ttl
string

The time-to-live of the lock in milliseconds. After this amount of time, the lock will be automatically removed or the property will be deleted if lock is of type 'trash'. If this value is null or empty, the lock is not limited to a time-to-live and must be removed manually. Note: The lock cleanup job will run any few minutes, so if 'ttl' of a lock has been set to a few milliseconds or seconds it can be, that it is fully removed from the metadata returned by reading a property only after some minutes. Writing to the property instead works immediately after the 'ttl' has been expired.

type
string

The type of the lock for which range the lock is exclusive. One of: 'user', 'role', 'group', 'namespace', 'global' or 'trash'. If null, empty or different from the types mentioned here, the lock will be global by default.

uuid
string

In case the lock is of type 'user', this parameter must contain the uuid of the user this lock is exclusive to. If this parameter is missing, the uuid of the currently logged-in user will be used.

Responses

property.lock.remove

Removes a lock from a given property.

Search Academy for more details about: property.lock.remove.

query Parameters
key
string

Deprecated. Use path instead. The key of the property to remove the lock from.

path
required
string

The path of the property to remove the lock from.

Responses

property.move

Moves a property from one key to another.

Search Academy for more details about: property.move.

query Parameters
key
string

The origin path key of the property.Otherwise a new entry is created.

path
required
string

Deprecated. Use path instead. The origin path key of the property.Otherwise a new entry is created.

to
required
string

The target key to move the property to. If a property with this key already exists, an exception is thrown.

Responses

property.path.children

Returns all property child keys for a given parent key. For any child 'folder', returns / at the very end.

Search Academy for more details about: property.path.children.

query Parameters
pattern
required
string

The key pattern of the parent property or properties. Can be a static suffix like my/parent/path or my/parent/path/ or a pattern like my/parent/path/*. Nested patterns like my/*/path/* are not supported.

Responses

property.path.list

Returns all property paths for a given pattern.

Search Academy for more details about: property.path.list.

query Parameters
includeTrashed
string

Include also properties moved to trash bin in the search?

pattern
required
string

The key pattern of the properties to search for. Also supports path pattern matching whereas * matches a single part inside a directory in the key and ** everything. For example '/pipeforce/namespace/user/**' would return all properties of all users in the given namespace. Also sub levels of this path. To avoid sub-leveling use the * instead: '/pipeforce/namespace/user/*'. This would return /pipeforce/namespace/user/max' but not /pipeforce/namespace/user/max/contracts'.

Responses

property.put

Saves the value of a property. The property schema must exist in advance (no new property will be created).

Search Academy for more details about: property.put.

query Parameters
key
string

Deprecated. Use path instead. The path key of the property to save. If property with key already exists, the existing property will be loaded and updated instead. Otherwise a new entry is created.

path
required
string

The path of the property to save. If property with this path already exists, the existing property will be loaded and updated instead. Otherwise a new entry is created.

value
string

The value of the property. May be null or empty.

Responses

property.query

Queries the properties from the backend by using a certain query language.

Search Academy for more details about: property.query.

query Parameters
dialect
required
string

The query language to be used.

from
required
string

Defines the properties by path patterns to be selected for the query. Multiple patterns must be separated by comma. Additionally, each pattern must be assigned to a variable using 'as varName'. For example global/app/** as all. This variable will used in the select and where clause.

params
string

A map of parameters an their values to be used in order to execute the query as prepared statement.

select
string

Selects the attributes / columns / scalars to return. If null or empty, and select all is used.

type
string

The property type to query for. If null, application/json will be used as default. If set to empty string or * all types will be selected.

where
string

Defines the WHERE clause in order to filter the result based on the supported filter criteria. The syntax of the criteria depends on the selected query language.

Responses

property.schema.delete

Deletes any existing property schema and its assigned value matching the given pattern or key.

Search Academy for more details about: property.schema.delete.

query Parameters
key
string

Deprecated. Use pattern instead. The exact path key of the property to delete. If property with this key doesnt exist, nothing happens.

pattern
required
string

The path key pattern of the single property or the properties to delete. All matching properties will be deleted!

Responses

property.schema.put

Creates or updates a property schema. This command is intended for provisioning, admin and service tasks.
Returns a result JSON indicating the result of the command which usually is one of: create, update or skip.
Also consider property.put instead which expects an existing property.

Search Academy for more details about: property.schema.put.

query Parameters
attachments
string

The attachments to be added to this property. Can be a uri or a PEL. Overwrites existing ones.

defaultValue
string

The default value of the property. May be null.

encrypted
boolean

Should the value of this property be stored encrypted? If this is set to true, every time before the property value is saved, it will be auto-encrypted using the default access key. This way you can make sure that the sensitive value is always saved in encrypted format at database layer (at rest). This increases security, but also has some drawbacks. For example: JSON queries are no longer possible then. Auto-decryption is not done for lists. You have to decrypt an encrypted value explicitly by calling property.get. Event payloads for encrypted properties are also sent encrypted only. For example for property.updated event, the payload will be the encrypted value of origin and target.

evalValue
boolean

If true, the value of the property is evaluated before it is stored. Set this to false in order to store the value as it is without any interpretation.

existStrategy
string

In case a property with given key already exists, uses one of these strategies: update = The property is updated/overwritten by the new data. skip = The property is skipped. Nothing is changed in persistence layer. error = An error is thrown in case property already exists.

finalAction
string

What should happen with this property finally when pipeline execution has been finished? Available actions: 'persist' (writes the latest state to DB), 'remove' (removes the latest state from DB), null (nothing happens = default)

key
string

Deprecated. Use path instead. The path key of the property to save. If property with key already exists, it will be updated. Otherwise, a new entry is created.

path
required
string

The path key of the property to save. If property with key already exists, it will be updated.
Otherwise a new entry is created.
In case path contains the path variable {propertyUuid} then this will be replaced with the uuid
of the property newly created.
In case path ends with slash / the uuid
of the property newly created will be appended as 'filename'.

retentionStrategy
string

The retention strategy is used to decide delete property and it's data, there are two types of strategy (0,1) that decides the deletion.0 = Deletes chunks objects and data from storage if any (keeps property + attachment metadata) 1 = Deletes all (property, attachments, chunks from DB, binary data from storage if any)

tags
string

The initial tags to add to this property. Can be a comma separated list of name value pairs, like this name1:value1, name2:value2.

ttl
number

The time to life of this property in minutes. After this time, the property will be automatically removed from persistence. If null or empty, it wont be deleted. This param is considered only in case a new property is created.

type
string

The type of the property. One of: STRING, BOOL, INT, LONG, DECIMAL, JSON. This param is considered only in case a new property is created.

value
string

The value of the property as a preset. May be null.

Responses

property.search

Returns all properties of given search criteria.

Search Academy for more details about: property.search.

query Parameters
includeTrashed
boolean

Include the properties moved to trash bin in the search?

info
boolean

If set to true, the result will also include information about the request. This is useful for example for pagination.

keyFilter
string

Deprecated. USe path instead. They key pattern to pre-select the properties to search in.

maxResults
number

The number of results to return. Note: The maximum is 100 results per call because of performance reasons. In case there are more results, use the offset and pagination to retrieve them. If this parameter is set to a value > 100 it will be reset to 100.

offset
number

The 0-based offset of the search result to return. If not set, no offset is used.

page
number

The 1-based index of the page to return. Does the offset calculation automatically. If this param is given, offset will be ignored.

pathFilter
required
string

They path pattern to pre-select the properties to search in.

typeFilter
string

The type of the property. Will find any properties containing this type. This value is case in-sensitive.

valueFilter
string

The search filter to search inside the value of the properties. This value is case in-sensitive.

Responses

property.tag.delete

query Parameters
name
string

The name of the tag on the given property to delete.

path
required
string

The path of the property to delete.

Responses

property.tag.list

Returns all tags for a given property in the body as JSON: {name1:value1, name2:value2}.

Search Academy for more details about: property.tag.list.

query Parameters
key
string

Deprecated. Use path instead. The path key of the property to list the tags for.

path
required
string

The path of the property to list the tags for.

Responses

property.tag.put

Adds a tag to an existing property. Overwrites any existing one.

Search Academy for more details about: property.tag.put.

query Parameters
key
string

Deprecated. Use propertyPath instead.

name
string

The name of a single tag to add.

path
string

Deprecated. Use propertyPath instead.

propertyPath
required
string

The path of the property to add the tag to.

tags
string

A list of multiple tags to add to the property. Must a be a name-value pair list separated by comma. For example: name1:value1, name2:value2. If no tags are set, nothing happens.

value
string

The value of a single tag to add. Only used in case tag name is not null.

Responses

property.ttl.put

Updates the ttl (time to live) of properties matching the given pattern. This command
is intended for testing or support purposes.

Search Academy for more details about: property.ttl.put.

query Parameters
pattern
required
string

The path pattern to match properties those TTL to change.

ttl
number

The time to life to set on the matching properties. After this time, the property will be automatically removed from persistence. If null or empty, it wont be deleted. This param is considered only in case a new property is created.

Responses

property.value.expression

Executes the given expression on persisted properties and returns the matching ones. This type of search for properties is very powerful since it allows to search on any schemaless structures. But be aware it is low performing on a huge amount of properties.

Search Academy for more details about: property.value.expression.

query Parameters
aggregate
string

Defines an expression to be applied on the final result. For example to count all values or to transform them. If null or empty, no aggregation will be applied.

from
required
string

Specifies the properties to be loaded for the search. Can be a relative or absolute property wildcard key path. For example: 'global/object/invoice/*

includeTrashed
string

Should properties moved to trash bin included in this search?

select
string

Specifies the attributes of each entity to return in the result set. For example person.firstName here would return a list of first names in the result in case the property has an (JSON) object as value which contains such a field. Can be null or set to '*' to return all fields.

where
string

Specifies a selection filter to return only the properties those values match the given where filter. For example: invoice.amount > 50 would select only those properties having a field invoice.amount with value bigger than 50. If null, no where filter is applied and all properties values will be selected.

Responses

property.value.get

Returns the value of a given property.

Search Academy for more details about: property.value.get.

query Parameters
decrypt
string

Should the value be auto-decrypted in case it is encrypted? Note: This is only possible, if the value was encrypted using the default encryption. In case this property was not encrypted, nothing happens by setting this to true.

includeUuidField
string

If the resulting property value is a JSON object, adds the property uuid at first level of the JSON using this value as the key name. Overwrites any existing entry with same name. If this parameter is null or empty, no entry will be added (default). If property is not a JSON, ignores this parameter.

key
string

Deprecated. Use path instead. The key of the property to be returned.

path
required
string

(default) The path of the property to be returned.

Responses

property.value.list

Lists only the values of all matching properties in an array.

Search Academy for more details about: property.value.list.

query Parameters
includeKeyField
string

If the resulting property value is a JSON object, adds the property key at first level of the JSON using this value as the key name. Overwrites any existing entry with same name. If this parameter is null or empty, no entry will be added (default). If property is not a JSON, ignores this parameter.

includeUuidField
string

If the resulting property value is a JSON object, adds the property uuid at first level of the JSON using this value as the key name. Overwrites any existing entry with same name. If this parameter is null or empty, no entry will be added (default). If property is not a JSON, ignores this parameter.

pattern
string

The key pattern of the properties to search for. Also supports key pattern matching whereas * matches a single part inside a directory in the key and ** everything. For example '/pipeforce/namespace/user/**' would return all properties of all users in the given namespace. Also sub levels of this key. To avoid sub-leveling use the * instead: '/pipeforce/namespace/user/*'. This would return /pipeforce/namespace/user/max' but not /pipeforce/namespace/user/max/contracts'.

Responses

property.value.list.put

Saves a list of property values by iterating over this list and storing each value separately in the property store. Each value will be persisted in its own property. The path of this property will be calculated from baseKey/valueOf(primaryKeyField).The property schema for each key must exist in advance (no new properties will be created).

Search Academy for more details about: property.value.list.put.

query Parameters
baseKey
required
string

Deprecated. Use basePath instead. The base key (= folder) of the properties to save. At the end of this key path, the primary key will be appended for each value in the list in order to save it in its property.

basePath
required
string

The base path (= folder) of the properties to save. At the end of this path, the primary path will be appended for each value in the list in order to save it in its property.

ignoreUuidField
string

If this parameter contains a non-empty value, and a property value is a JSON type, tries to remove the uuid field with given name, so it is not stored to database. If this parameter is set, but the JSON field doesn't exist or the property value is not a JSON, nothing happens.

iterItemName
string

Changes the name of the iteration item value, provided for primaryKeyField

primaryKeyField
string

The field name inside each value item which contains the primary key. Can be a string constant or a PEL. If it is a PEL, will be evaluated for each item in the list separately. The PEL has access to variables: headers (= headers of the pipeline), vars (= pipeline variables), body (= body of the pipeline), value (= the current iteration item value about to be saved).

Responses

property.value.put

Saves the value of a property. The property must exist in advance. This command does not allow to change the metadata of a property. If you need to change this, use property.put instead.

Search Academy for more details about: property.value.put.

query Parameters
ignoreUuidField
string

If this parameter contains a non-empty value, and the property value is a JSON type, tries to remove the uuid field with given name, so it is not stored to database. If this parameter is set but the JSON field doesn't exist or the property value is not a JSON, nothing happens.

key
string

Deprecated. Use path instead. The key of the property to save the value to.

path
required
string

The path key of the property to save the value to.

value
string

The value of the property to save. May be null or empty.

Responses

push

push.subscription.delete

Deletes a push subscription from property store and from cache.

Search Academy for more details about: push.subscription.delete.

query Parameters
uuid
required
string

The uuid of the subscription to delete.

Responses

push.subscription.flush

Causes a push subscription processing cycle to be executed. This is not intended for automated calls. Only for admin purposes. Too frequent calls of this command are forbidden and will be blocked.

Search Academy for more details about: push.subscription.flush.

Responses

push.subscription.get

Returns a subscription by uuid or null in case no such subscription exists.

Search Academy for more details about: push.subscription.get.

query Parameters
uuid
required
string

The uuid of the subscription to return.

Responses

push.subscription.list

Returns all push subscriptions as list.

Search Academy for more details about: push.subscription.list.

query Parameters
cached
string

Should the subscriptions from cache returned (true) or
those from property store (false). The latter one is the default if this
param is missing.

Responses

push.subscription.put

Creates or updates a push subscription by adding it to property store + caching it.

Search Academy for more details about: push.subscription.put.

Responses

resolve

resolve

Resolves a given PIPEFORCE uri to its content and returns it. For example $uri:property:global/app/myapp/mydata will return the value of the mydata property. Also see: https://docs.pipeforce.org/docs/api/uris

Search Academy for more details about: resolve.

query Parameters
uri
required
string

The PIPEFORCE uri of the content to resolve.

Responses

resource

resource

Loads a resource depending on its resource protocol like classpath:, property: or alike.

Search Academy for more details about: resource.

query Parameters
path
string

DEPRECATED. Use uri instead.

uri
required
string

The uri path to load the resource from. If it starts with classpath:pipeforce, a lookup in the classpath subfolder pipeforce is done (other locations are not allowed). If it starts with property: a lookup in the property store is done and the result is thevalue of the property if exists.

Responses

resource.save

Expects a resource base64 encoded in the body and saves it as a resource to hub.

Search Academy for more details about: resource.save.

query Parameters
path
required
string

The path to save the resource to.

Responses

result

result.complete

Completes a processing result. The input to the command will be set as completion value to the result. In case result with given id doesn't exist or was already completed, nothing happens. So calling this completion multiple times has no effect. First one wins. Also using this for polling (by checking for non-existing exception) will not work for performance and security reasons here.

Search Academy for more details about: result.complete.

query Parameters
correlationId
required
string

The id of the result to be completed.

value
string

The optional value to be set on the result.

Responses

result.delete

Cancels and deletes a processing result. If result doesn't exist or was already cancelled, nothing happens. Will return information about the cancelled task if there was any.

Search Academy for more details about: result.delete.

query Parameters
correlationId
required
string

The id of the result to be cancelled.

Responses

result.get

Returns a result from the cache but without the result value. If the result value is required, use polling instead.

Search Academy for more details about: result.get.

query Parameters
correlationId
required
string

The id of the result to return.

Responses

result.list

Returns all existing results (without result values) from cache.

Search Academy for more details about: result.list.

query Parameters
status
string

Returns all results matching this status. If null or empty, all results in any status will be returned.

Responses

result.put

Creates a new result and registers it in the cache.

Search Academy for more details about: result.put.

Responses

rpa

rpa.website.close

Closes website and releases all used resources.Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: rpa.website.close.

Responses

rpa.website.open

Opens a website and sets its browser instance as 'vars.browser'. Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: rpa.website.open.

query Parameters
url
required
string

The url of the web page to open.

Responses

rpa.website.scrap

Scraps data from the current website and returns the result in the body.Note: The pipe is BETA and not intended to be used in production!

Search Academy for more details about: rpa.website.scrap.

query Parameters
xpath
required
string

Executes the given xpath expression on the current page and puts the result in the body. In case the xpath returns more than one results, adds an array to the body. Otherwise the body only contains the single result value.

Responses

script

script.groovy

Executes a groovy script.
See: https://groovy-lang.org/documentation.html
These default variables are always available inside the script:
headers, vars, body, request, response, context.
Note: If output parameter is not defined, nothing is written to output or body.

Search Academy for more details about: script.groovy.

query Parameters
args
string

The additional args map to be passed to the script as name value pairs.
They can be accessed via args.name.

code
required
string

(default) The Groovy script to be executed

Responses

script.run

Removed. This command is not longer supported. Consider to use function.run instead.

Search Academy for more details about: script.run.

Responses

secret

secret.delete

query Parameters
name
required
string

The name of the credentials entry to delete.

Responses

secret.get

Lists the metadata (not the secret payload itself) of all available secret entries.

Search Academy for more details about: secret.get.

query Parameters
includeTrashed
string

Also include the secret properties moved to trash bin in the list search?

name
string

The name of a single credentials to return. If null or empty, all credentials will be returned.

Responses

secret.put

Creates a new credentials entry.

Search Academy for more details about: secret.put.

query Parameters
format
required
string

The format of the secret to store. One of: secret-text, bearer, header, username-password.

name
required
string

The unique name of the credentials.

secret
required
string

The secret part (for example the username:password or Bearer TOKEN).

timeToLive
string

The time to live in minutes. After this time, the credentials will be deleted.

Responses

secretsend

secretsend.inbox.auth

Creates and verifies a magic link download token to access a given inbox transfer.

Search Academy for more details about: secretsend.inbox.auth.

query Parameters
cookieToken
string

In order to improve security, set a cookie value in your browser (client) and make sure on second call of this command, the cookie token is read from client and put into this command. This way you can make sure, that the client which sends the magic token is the same as theone who initially requested it. This token is optional.

magicToken
string

The magic token, sent to the recipient (via email) after he requested it.

outboxUuid
required
string

The uuid of the secret send outbox, the user needs access to.

recipientEmail
required
string

The email of the recipient to create the token for.

Responses

secretsend.inbox.download

Downloads the content of an attachment or a group of attachments.

Search Academy for more details about: secretsend.inbox.download.

query Parameters
filenames
string

A list of one or more attachment filenames to be downloaded (comma separated or PEL list object). If this list is null or empty, all files of the inbox will be downloaded as single zip file. If only one file is defined, this file is downloaded plain. If there is more than one file defined, downloads all of these files as a single zip.

inboxUuid
string

The uuid of the inbox transfer to return.

outboxUuid
string

The uuid of the outbox transfer to return.

Responses

secretsend.inbox.get

query Parameters
inboxUuid
required
string

The uuid of the inbox transfer to return.

Responses

secretsend.inbox.list

Lists all inbox transfers targeted to a given recipient.

Search Academy for more details about: secretsend.inbox.list.

query Parameters
recipientEmail
string

The email of the recipient to list the inbox for. If this param is missing, the inboxes for the currently logged-in user will be listed. This parameter can only be set in case the logged-in user has admin, developer or support permissions. Otherwise, an exception is thrown.

Responses

secretsend.outbox.attachment.chunk.put

Adds a chunk of data to an existing secret send attachment given by outboxUuid and name parameter.

Search Academy for more details about: secretsend.outbox.attachment.chunk.put.

query Parameters
content
string

The content to be added to the chunk. If this parameter is null or empty, the input will be used as content instead.

index
string

The index of the chunk. If given, the content of the chunk at given index is replaced with the new content. If null or empty, a new chunk is added to the attachment.

name
required
string

The name of the attachment inside the outbox this chunk belongs to.

outboxUuid
string

The uuid of the outbox transfer to add the chunk to.

Responses

secretsend.outbox.attachment.delete

Deletes an attachment from an secret send outbox. Including its content!

Search Academy for more details about: secretsend.outbox.attachment.delete.

query Parameters
name
required
string

The name of the attachment to be deleted.

outboxUuid
required
string

The uuid of the outbox transfer to delete the attachment from.

Responses

secretsend.outbox.attachment.put

Creates a new attachment and adds it to the given secret send outbox. The content of the attachment is expected to be referenced in the content param or - if empty - in the body. It's also possible to add the content later using the command secretsend.outbox.attachment.chunk.put.

Search Academy for more details about: secretsend.outbox.attachment.put.

query Parameters
content
string

The content to add. If null, the data in the body will be added. In case you would like to explicitly set no content at all, set this value to: false.

contentType
string

The content type to be used for this attachment. In case there is a single content object, this value has precedence over the contentType of the content object, if there is any. In case there are multiple content objects, their contentType do have precedence, if set.

length
string

The length of the attachment.

name
string

The name of the attachment to be created. If an attachment with this name already exists, updates the existing one.

outboxUuid
string

The uuid of the outbox transfer to add the attachment to.If null or empty, a new one will be created.

Responses

secretsend.outbox.delete

query Parameters
outboxUuid
required
string

The uuid of the transfer in the outbox to delete.

Responses

secretsend.outbox.finalize

Finalizes a given secret send outbox: Creates inboxes for each recipient and sends notification email to each by default.

Search Academy for more details about: secretsend.outbox.finalize.

query Parameters
outboxUuid
string

The uuid of the transfer outbox to finalize.

sendEmails
string

Should the notification emails to the recipients created and send on this finalize?

Responses

secretsend.outbox.get

query Parameters
outboxUuid
required
string

The uuid of the transfer outbox to return.

Responses

secretsend.outbox.list

Lists all outbox transfer items created by the currently logged-in user.

Search Academy for more details about: secretsend.outbox.list.

Responses

secretsend.outbox.preview

Returns the preview for a given outbox, if supported by security settings.

Search Academy for more details about: secretsend.outbox.preview.

query Parameters
outboxUuid
string

The uuid of the outbox transfer to return.

Responses

secretsend.outbox.put

Creates or updates a PIPEFORCE Secret Send with DRAFT status and saves it.

Search Academy for more details about: secretsend.outbox.put.

query Parameters
expiresOn
string

Delete the transfer attachments after this date and time given as unix timestamp in millis. If null, empty, 0 or negative, delivery will never be deleted.

locale
string

The locale to be used for this secret send system message and number formats (examples: de_DE, de, en_US, ...). If null, the system default one will be used.

message
string

The message of the transfer or null (in order to set it later)

notifySender
string

If true, notifies sender when recipients have downloaded delivery.

notifySenderEmailReceipt
string

If true, notifies receipt email to the sender when mail has been sent to recipients

outboxUuid
string

The uuid of the transfer in the outbox to update. If null or empty, a new one will be created.

recipients
string

A comma separated list of email recipients or null (in order to add it later). Also PEL is supported here.

retentionStrategy
string

The retention strategy is used to decide delete property and it's data, there are two types of strategy (0,1) that decides the deletion.0 = Deletes chunks objects and data from storage if any (keeps property + attachment metadata) 1 = Deletes all (property, attachments, chunks from DB, binary data from storage if any)

subject
string

The subject of the transfer or null (in order to set it later).

Responses

secretsend.outbox.recipient.delete

Removes a recipient from a given secret send outbox. Note: This is only possible in case this transfer is in status DRAFT.

Search Academy for more details about: secretsend.outbox.recipient.delete.

query Parameters
outboxUuid
required
string

The uuid of the transfer outbox to add the recipient to.

recipientEmail
required
string

The email of the recipient to add.

Responses

secretsend.outbox.recipient.email.send

(Re-) sends the secret send notification email to the recipient.

Search Academy for more details about: secretsend.outbox.recipient.email.send.

query Parameters
outboxUuid
required
string

The uuid of the outbox item.

recipientEmail
required
string

The email of the recipient to send the notification to.

Responses

secretsend.outbox.recipient.put

Adds a new recipient to a secret send. If a recipient with given email already exists, nothing happens. Updating an existing recipient is not yet supported.

Search Academy for more details about: secretsend.outbox.recipient.put.

query Parameters
enabled
string

Is the recipient enabled = can download the transfer?

outboxUuid
required
string

The uuid of the transfer outbox to add the recipient to.

recipientEmail
required
string

The email of the recipient to add.

recipientLocale
string

The locale to be used for this recipient like de, en or fr for example.

sendEmail
string

Should be an email sent to the recipient?

Responses

server

server.info

Returns information about the current server. For example the version it is running under. Returns a flat JSON with these keys: status, namespace, domain, edition, stage, tag, build, version, versionMajor, versionMinor, versionBugfix

Search Academy for more details about: server.info.

Responses

service

service.job.logs

Returns the logs of a service job in the cluster.

Search Academy for more details about: service.job.logs.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

name
string

The name of the service job.

Responses

service.job.start

Starts a new service job in the cluster. The job runs async. Use service.job.status and service.job.logs to check the result of the job.

Search Academy for more details about: service.job.start.

query Parameters
args
string

The list of args to be passed on to the service job container.

command
string

The list of command to execute on the service job container.

credentials
string

DEPRECATED. Use param secret instead.

env
string

Environment variables to be applied to the job service container. Can contain 'secret-text' secret references with value like '$uri:secret:secretTextName', '$uri:webhook:token:keyToResolve'.

image
string

The repo path of the image to be deployed. In case the image name starts with prefix 'pipeforce-registry/' the image will be loaded from the default PIPEFORCE registry for this namespace.

imagePullPolicy
string

The policy how to handle non existing image. Can be one of: Always (pull image always from registry, to get latest), IfNotPresent (pull image from registry if not present), Never (pull image never from registry).

imagePullSecret
string

The optional name of the registry secret to be used in case it is a private registry.

name
string

The name of the service job.

replace
string

If true, an existing job with same name will be deleted before this new one is created. If false, an exception is thrown in case a job with same name already exists.

Responses

service.job.status

Returns the status of a service job in the cluster.

Search Academy for more details about: service.job.status.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

name
string

The name of the service job.

Responses

service.job.stop

Stops a service job in the cluster even if it is not finished yet.

Search Academy for more details about: service.job.stop.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

name
string

The name of the service job.

Responses

service.start

Starts a new microservice in the cluster.

Search Academy for more details about: service.start.

query Parameters
args
string

The list of args to be passed on to the service container.

command
string

The list of command to execute on the service container.

credentials
string

DEPRECATED. Use param secret instead.

env
string

Map of environment variables to be applied to the service container. Can contain 'secret-text' secret references with value like '$uri:secret:secretTextName' or webhook references like '$uri:webhook:eventKey' which will be resolved and passed to the container.

image
string

The repo path of the image to be deployed. If empty, no image will be deployed (just the service slot created). In case the image name starts with prefix 'pipeforce-registry/' the image will be loaded from the default PIPEFORCE registry for this namespace.

imagePullPolicy
string

The policy how to handle non existing image. Can be one of: Always (pull image always from registry, to get latest), IfNotPresent (pull image from registry if not present), Never (pull image never from registry).

imagePullSecret
string

The optional name of the registry secret to be used in case it is a private registry.

ingress
boolean

Expose the given port of the service to the internet? The service is then reachable via HTTPS using the url https://[serviceName]-[namespace].pipeforce.net.

name
string

The name of the service.

port
number

The port the running service accepts requests.

replicas
string

The number of stateless replicas (= scaling instances) of this service to be started in parallel in the cluster by default.

volumes
string

The list of paths inside the container to mount to persisted volumes. This will automatically create a persistent volume and stores the data in the given paths to this volume. By default, the volume will be kept even on stop and start of the container. See service.stop command.

Responses

service.status

Returns the status info of the given PIPEFORCE managed service.

Search Academy for more details about: service.status.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

format
string

The format of the status output: How much status information must be returned? Can be one of compact, normal, full.

name
string

Name of the service. If null or empty, the status of all PIPEFORCE managed services in current namespace will be returned.

Responses

service.stop

Stops a microservice from the cluster.

Search Academy for more details about: service.stop.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

deleteVolumes
string

If set to true, any volume declared on service.start will be deleted.

name
string

The name of the microservice to be stopped.

Responses

set

set

Sets a value in the pipe message. The value to be set can be a constant or an expression.

Search Academy for more details about: set.

query Parameters
mapping
string

A list of mapping rules to be applied to the given input value.

to
string

DEPRECATED. Use param output instead.

value
required
string

(default) A string or an expression to be used as the value to be set.

Responses

sftp

sftp.delete

Deletes a file or folder on the SFTP server.

Search Academy for more details about: sftp.delete.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

host
string

The host

password
string

The password

path
string

The path to the file or folder to delete. If path ends with / a folder is expected to be deleted.

port
string

The port

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

username
string

The username

Responses

sftp.download

Downloads a file from a SFTP server. The file is written as content object to output.

Search Academy for more details about: sftp.download.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

host
string

The host

password
string

The password

path
required
string

The path of the file to download.

port
string

The port

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

username
string

The username

Responses

sftp.list

Lists files of a given folder. If not filter parameter is used all files are returned. The result is written to output.

Search Academy for more details about: sftp.list.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

filter
string

The filter to apply to files list. '?' - match one character, '*' - match zero o more characters, '\*' to match '*' in filename

host
string

The host

password
string

The password

path
string

The path to the folder to list.

port
string

The port

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

username
string

The username

Responses

sftp.mkdir

Creates a new directory on the SFTP server.

Search Academy for more details about: sftp.mkdir.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

host
string

The host

password
string

The password

path
required
string

The path where to create the folder.

port
string

The port

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

username
string

The username

Responses

sftp.rename

Renames a file or folder on the SFTP server.

Search Academy for more details about: sftp.rename.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

fromPath
string

The origin path to the resource to rename.

host
string

The host

password
string

The password

port
string

The port

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

toPath
string

The new path / name of the resource.

username
string

The username

Responses

sftp.upload

Uploads a file to a SFTP server. The file is expected to be in the input.

Search Academy for more details about: sftp.upload.

query Parameters
credentials
string

DEPRECATED. Use param secret instead.

host
string

The host

password
string

The password

path
string

The path to upload to. If this ends with a slash / it is expected to be a folder name. The file name will be attached from the input file which must be a content object in this case.

port
string

The port

secret
string

Refers to the name of a stored secret entry to be used by this command. If not null, all other credentials parameters are ignored if there exists any.

username
string

The username

Responses

slack

slack.send

Sends a text message via webhook url to Slack. Also see: https://api.slack.com/messaging/webhooks

Search Academy for more details about: slack.send.

query Parameters
text
required
string

The text message to be send to Slack.

url
required
string

The Slack webhook url to post the message to. See here to generate one: https://api.slack.com/messaging/webhooks

Responses

sql

sql

Executes a SQL query and returns the result as JSON in the body.
The result size is limited to 1000 result rows. If you need more, use pagination or filter the result.
NOTE: This command is primarily meant for developers and support to monitor the system.
It must NOT be used in production apps! It can change at any time without notice!

Search Academy for more details about: sql.

query Parameters
datasource
string

The name of the datasource to be used. Examples: hub, drive, workflow

format
string

The format of the result. Must be one of: array, object

includeColumnNames
string

In case format is array, should the first row contain the column names?

params
string

Optional SQL parameter map. Values can be accessed via :name inside SQL query.

query
string

The SQL query to be executed.

Responses

sql.describe

Returns information about the given datasource.

Search Academy for more details about: sql.describe.

query Parameters
columns
string

Include column info on each table?.

datasource
string

The name of the datasource to be used.

schemas
string

Include table info?.

tables
string

Include table info?.

Responses

stats

stats

Returns basic status information about the hub service.

Search Academy for more details about: stats.

Responses

switch

switch

Evaluates each switch statement. Takes the value part of the first match and writes it to the given output. If no output is given, writes it to the body. Any param key will be the selection expression which needs to evaluate to a boolean true or false and any value will be the selected value.

Search Academy for more details about: switch.

Responses

terms

terms.delete

query Parameters
locale
string

The locale of the terms to delete.

name
required
string

The name of the terms to delete.

Responses

terms.get

Returns a terms by its name and locale.

Search Academy for more details about: terms.get.

query Parameters
locale
string

The locale of the terms to return. If this param missing, the default locale will be used.

name
required
string

The name of the terms to return.

Responses

terms.list

Returns all terms. The name and and locale, each. But not the text.

Search Academy for more details about: terms.list.

Responses

terms.put

Adds a new terms entry to the property store.

Search Academy for more details about: terms.put.

query Parameters
locale
string

The locale of the terms

name
required
string

The name of the terms

system
string

Is it a system term? Attention: Cannot be deleted via commands!

text
string

The terms text. If this parameter is missing, the value from the body will be used.

Responses

terms.text.get

Returns the terms text by its name and locale.

Search Academy for more details about: terms.text.get.

query Parameters
locale
string

The locale of the terms to return.

name
required
string

The name of the terms to return.

Responses

test

test.run

Runs all test scripts defined by given pattern asynchronously.

Search Academy for more details about: test.run.

query Parameters
dryRun
string

This param will skip real test execution.
Instead it will return all found tests using the given status.
This is mainly for testing DevOp tasks in order to make sure integrated tests work as expected.
Possible values are: passed, failed, error, ignored

functionExcludePattern
string

A PE which defines the test functions to be excluded from the list of included test functions.
The function method name is provided as variable: functionName.
By default all test functions, ending in IT will be ignored.

functionIncludePattern
string

A PE which defines the test functions to be included.
The selected method name is provided as variable: functionName.

locations
string

The location patterns, selecting all tests in the property store to be selected for test runs.

pollingRedirectEnabled
string

Should the response contain a 503 status (redirect) in case the result is not
finished yet so a long polling is possible? If true, the 503 status is returned to the caller with
a target url. If caller client follows this redirect, it can long poll on the target url for the final result.
The test ALWAYS starts async in the backend.
Therefore, if a final result is expected, it must be retrieved always using long polling or a message listener.

reportFormat
string

The format of the resulting test report.
Possible values: json (default), junit

waitBeforeStart
string

The time to wait in ms before the the test run starts.

Responses

theme

theme

Returns the resources for a given theme in the body and enrich headers with appropriate Content-type. Caches the resources where applicable.

Search Academy for more details about: theme.

query Parameters
clearCache
boolean

If true, the current theme cache is cleared.

contentType
string

The content type to be returned as fallback in case there is none defined at backend side for the requested resource. If this param is missing, it will be tried to guess the type automatically. If the type could not be guessed, returns application/octet-stream by default.

name
string

The name of the theme. If not given, the default theme will be used as configured.

ref
string

The optional referrer id to this resource request.

resource
required
string

The name of resource to be loaded. If it starts with a slash / tries to load the resource from the default location with given name. If resource is one of the default names like: background, logo, pipeforce-logo, tries to load the default resource for these names. If null or invalid value, falls back to default value.

Responses

transform

transform

This transformer converts the input to an output format by applying the given template engine. By default the current message is provided as model inside the template context so you can access body, vars or headers similar to the default PEL approach.

Search Academy for more details about: transform.

query Parameters
engine
string

The template engine to be used. Currently 'freemarker' and 'pel' is supported.

groupBy
string

An expression to apply on the target list in order to group the result of a row into. If the expression returns false, the row result is added to the end of the list.If null or empty, each row result creates a new entry in the target list.

iterate
string

If true, the input is expected to be a list which will be iterated. The template is then applied on each iteration row and the result is added to a target list.

modelName
string

The name of the root model under which the input can be accessed inside the template. If null or empty, then the input defines the model names.

template
required
string

The template to be used for the transformation. It can the template text itself as string or a qualified uri pointing to a template resource like this for example: $uri:property:/my/template/path

Responses

transform.csv.json

Takes a CSV document in the body and converts it to a JSON. The CSV document must comply with the RFC4180 standard format.

Search Academy for more details about: transform.csv.json.

query Parameters
delimiter
string

The delimiter (separator) to separate the columns of the CSV

hasHeadersLine
string

Does the first line of the input CSV contain the column header names?

rowsFormat
string

The JSON format of the rows section: arrays (= array with nested string arrays with each CSV line as such a new nested array), objects (= each CSV line will become a new JSON object in the rows array with the CSV headers as the field keys)

showColumnsCountField
string

Show the number of headers (columns) in element columnsCount?

showHeadersField
string

Show the column header names in extra element headers? This is only shown if hasHeaders is true. In this case, the values array doesnt contain a first headers line.

showRowsCountField
string

Show the number of rows (values) in element rowsCount?

Responses

transform.ftl

This transformer uses the FreeMarker template engine for its transformation.

Search Academy for more details about: transform.ftl.

query Parameters
model
string

The model to be placed into the template scope. If null, the message is used as model so you can access vars and body the same way as you would do in the pipeline.

template
string

The template to be used for the transformation.
If this param null, the template text is expected in the body.
It can be a static template text or a qualified PIPEFORCE URI
(for example $uri:property:/my/template/path) pointing to the template text.
Pipeline expressions in this param are not supported here since
they would conflict with the template variables.

Responses

transform.html2docx

Takes html text that is expected in the body, (as pipeline resource) and converts it back to docx document and then writes to output.

Search Academy for more details about: transform.html2docx.

Responses

transform.json.html

Transforms a given JSON document by input into a simple HTML structure with ul and li elements which is mainly intended for better human readability in an HTML browser.

Search Academy for more details about: transform.json.html.

Responses

transform.json.xml

Takes a JSON document or JSON string in the body and converts it to an XML document.

Search Academy for more details about: transform.json.xml.

Responses

transform.pdf2png

Takes pdf that is expected in the body, (as pipeline resource) and converts it back to body (as pipeline resource) as a collection of png images.

Search Academy for more details about: transform.pdf2png.

query Parameters
dpi
string

DPI to use for conversion. 300 DPI is used when not specified.

Responses

transform.png2pdf

Takes collection of pngs that is expected in the body (as pipeline resource) and converts it back to body (as pipeline resource) to pdf document.

Search Academy for more details about: transform.png2pdf.

query Parameters
dpi
string

DPI to forcibly use for conversion.

Responses

transform.word2pdf

DEPRECATED. Use microsoft.word.export.pdf instead. Takes a word file (.docx) that is expected in the
body and converts
it to pdf and stores it back into the body.

Search Academy for more details about: transform.word2pdf.

query Parameters
path
string

Provides the URL the word document is located at. If set, it uses REST PDF conversion service instead of library.

Responses

transform.wordtemplate

Transforms velocity template expressions in word files. It expects the template to be in the body or in thetemplate param, transforms it and puts the result back to the body as byte array content.

Search Academy for more details about: transform.wordtemplate.

query Parameters
model
required
string

The model to be placed into the template scope. May not be null.

template
string

The template to be used for the transformation. If null, the template is expected in the body. Otherwise this param is used. It can be a PE, a static string or a qualified uri (for example uri:classpath:/my/template/path.docx) pointing to the template.

Responses

transform.xml.json

Takes an XML document or XML string in the body and converts it to a JSON. By default, the PIPEFORCE XML to JSON conversion rules will be applied (see https://pipeforce.github.io/docs/guides/transformers/xml2json).

Search Academy for more details about: transform.xml.json.

query Parameters
scheme
string

The conversion scheme to be used. If null or empty, the default PIPEFORCE rules apply. If set to 'jackson', the rules defined by XML Jackson will be applied.

Responses

translate

translate

Translates the given text to the given target language. Expects the input by default in the body and writes the result by default back to the body.

Search Academy for more details about: translate.

query Parameters
apiKey
string

The alternative API key to connect to the service. If null or empty, the default one will be used, as defined by the default backend settings.

filter
string

A PEL as filter to be applied to the output data before it is returned by this command. If null or empty, no filter is applied.

restUrl
string

The URL to be called by the command. If null or empty, the default url will be used as defined in the backend.

secret
string

The secret text to be used. Expects the translate service API token and url stored in the secret store under this name. The entry must be a JSON like this {'restUrl':'', 'apiKey':''}.

targetLanguage
string

The target language to transform the text to. Supported values: DE, EN, FR, IT, JA, ES, NL, PL, PT, RU, ZH

text
required
string

The text to be translated.

Responses

unzip

unzip

Unzips a given zipped content from the body and puts the uncompressed content as collection into the output. Note: After pipeline has been finished, uncompressed content is gone.

Search Academy for more details about: unzip.

Responses

usage

usage.cache.flush

Writes all usage data immediately to storage, mainly for testing purposes. This is usually done automatically.

Search Academy for more details about: usage.cache.flush.

Responses

usage.keys.list

Returns the list of all usage keys.

Search Academy for more details about: usage.keys.list.

Responses

usage.stats.get

Returns the usage stats for a given usage key.

Search Academy for more details about: usage.stats.get.

query Parameters
key
required
string

The usage key those statistics to return.

Responses

user

user.notification.delete

query Parameters
uuid
string

The uuid of the notification to delete.

Responses

user.notification.list

Returns all notifications targeted to the currently logged-in user.

Search Academy for more details about: user.notification.list.

query Parameters
locale
string

The locale of the notification.
If null or empty, all available notifications in any language will be returned for this user.

read
string

If true, returns only those notifications, already read.
If false, returns only those notifications, not yet read.
If empty or missing, returns all notifications.

Responses

user.notification.markread

Marks a given user notification as read. Note: The logged-in user must be the user, the
notification is for in order to be able to mark it as read.

Search Academy for more details about: user.notification.markread.

query Parameters
uuid
string

The uuid of the notification

Responses

user.notification.put

query Parameters
background
string

The background color of the notification

banner
string

Should the notification be shown in the top banner?

button
string

The text to be shown on the button

icon
string

The icon of the notification

locale
string

The locale of the notification

message
string

The message of the notification

targetUsers
required
string

The list of users to show this notification for.
If *, notification will be shown to all.

timeToLive
string

The time to live in minutes. After this time, the notification will be deleted.
If null or empty, will be kept forever.

title
string

The title of the notification

Responses

var

var.set

Sets a value in the vars scope. Overwrites any existing var in the vars scope. The value to be set can be a constant or an expression.

Search Academy for more details about: var.set.

query Parameters
format
string

Converts a string value to the given target format if possible. If set to 'auto' tries to detect the target format by inspecting the value string. If set to 'none' doesnt apply any conversion.

key
required
string

A string or an expression to be used as key of the var to be set.

value
required
string

A string or an expression to be used as the value to be set.

Responses

vars

vars

This command allows to set multiple variables in one command. It can create new variables in the vars scope or overwrite existing ones.

Search Academy for more details about: vars.

query Parameters
set
required
string

(default) A list of key-value pairs to be evaluated in order to set variables.

Responses

wait

wait

Waits a certain amount of time with next execution.

Search Academy for more details about: wait.

query Parameters
ms
string

(default) The time to wait in milliseconds.

Responses

webhook

webhook.delete

Deletes an existing webhook. If no such webhook exists, nothing happens.

Search Academy for more details about: webhook.delete.

query Parameters
uuid
required
string

Id of the webhook to delete.

Responses

webhook.get

Returns all persisted webhooks as a list.

Search Academy for more details about: webhook.get.

query Parameters
uuid
string

Id of the single webhook to return. If null or empty, all webhooks will be returned.

Responses

webhook.put

Creates a new webhook or updates an existing one and returns its metadata.

Search Academy for more details about: webhook.put.

query Parameters
eventKey
required
string

Id of the event to be fired when hook was called.

maxPayloadLength
string

The max. length of the payload of this webhook in bytes. If this webhook is called with content in body bigger than this, an exception will be thrown.

payloadType
string

How to handle the payload before it gets published into the message broker? Possible values are: 'raw' (use the payload as it is), 'base64' (encode it base64, = default), 'outbound' (save the payload into a tmp cache and refer to it using an outbound url), 'ignore' (do not send the payload into the messaging).

pipeline
string

DEPRECATED: Link to pipeline via messaging instead.

uuid
string

The id (=token) of an existing webhook. If given, tries to update this webhook. In case no such webhook exists, creates a new one with given token.

Responses

webhook.receive

Runs a webhook identified by its uuid (token). The webhook is called async. Enable redirects in your client, set pollingRedirectEnabled:true and follow the 503 redirect if you need to retrieve the final result. In case the webhook with given token doesn't exist, nothing happens for security reasons. There is no feedback whether a webhook exists or not. A status code of 200 or 503 is returned by default.

Search Academy for more details about: webhook.receive.

query Parameters
pollingRedirectEnabled
string

Should the response contain a 503 status (redirect) in case the result is not finished yet so a long polling is possible? If true, the 503 status is returned to the caller with a target url. If caller client follows this redirect, it can long poll on the target url for the final result. Otherwise a 200 is returned without any result. Note: The process is ALWAYS started async in the backend. So if a final result is expected, it must be retrieved always using long polling or a message listener.

token
required
string

The unique token of the webhook. Can passed as request param or as header (recommended) to call the webhook from outside.

uuid
string

The uuid of the webhook (deprecated, use token instead).

Responses

webhook.receive.logs

Returns the receive logs of the given webhook. Note: This command is currently experimental and returns just dummy data.

Search Academy for more details about: webhook.receive.logs.

query Parameters
token
required
string

The unique token of the webhook to list logs for.

Responses

workflow

workflow.assert

Applies asserts for a given workflow in the workflow service.

Search Academy for more details about: workflow.assert.

query Parameters
processFinished
string

If true, checks whether the process with given id has been finished.

processInstanceId
required
string

The id of the process instance the task to check belongs to.

taskFinishedById
string

A comma separated list of task definition ids (not names!) to check whether they have been finished.

taskFinishedByName
string

A comma separated list of task names to check whether they have been finished.

taskNotFinishedById
string

A comma separated list of task definition ids (not names!) to check whether they have not yet finished.

taskNotFinishedByName
string

A comma separated list of task definition names to check whether they have not yet finished.

throwException
string

If true, throws exception when at least one of the assert params is false. Otherwise returns the query result of the last assert in the body.

Responses

workflow.authorization.delete

query Parameters
authorizationId
string

The id of the authorization to delete.

Responses

workflow.authorization.find

query Parameters
query
string

The query parameters as map.

Responses

workflow.authorization.permission.check

Checks whether a given user has permission for a given authorization.
This command requires READ permission on Authorization resource.
See: https://docs.camunda.org/rest/camunda-bpm-platform/7.21/#tag/Authorization/operation/queryAuthorizations

Search Academy for more details about: workflow.authorization.permission.check.

query Parameters
permissionName
required
string

The name of the permission to check. For example UPDATE, DELETE, CREATE, ...

resourceId
string

The id of the resource to check permission for. For example the process definition name.

resourceName
string

The name of the resource to check permission for. This value is optional.
If not given, it will be set according to the resourceType value.
At least one of both must be set. Possible values:
Application
Authorization
Batch
DecisionDefinition
DecisionRequirementsDefinition
Deployment
Filter
Group
GroupMembership
ProcessDefinition
ProcessInstance
Task
HistoricTask
HistoricProcessInstance
Tenant
TenantMembership
User
Report
Dashboard
UserOperationLogCategory
System

resourceType
string

The type (integer) of the resource to check permission for. This value is optional.
If not given, it will be set according to the resourceName value.
At least one of both must be set. Possible values:
Application = 0
Authorization = 4
Batch = 13
DecisionDefinition = 10
DecisionRequirementsDefinition = 14
Deployment = 9
Filter = 5
Group = 2
GroupMembership = 3
ProcessDefinition = 6
ProcessInstance= 8
Task = 7
HistoricTask = 19
HistoricProcessInstance = 20
Tenant = 11
TenantMembership = 12
User = 1
Report = 15
Dashboard = 16
UserOperationLogCategory = 17
System = 21

userId
string

The username to check permissions for. If null or empty, currently authenticated user is used (= better performing since cached).

Responses

workflow.authorization.permission.list

Lists all authorization permissions for the currently logged-in user on a given resource.
Differently to workflow.authorization.find, this command
can be called by any logged-in user to return its individual appropriate permissions
for a given resource.
The logged-in user is NOT required to have READ permission on Authorization resource
in order to use this command since he can list only his own permissions.
See: https://docs.camunda.org/rest/camunda-bpm-platform/7.21/#tag/Authorization/operation/queryAuthorizations

Search Academy for more details about: workflow.authorization.permission.list.

query Parameters
resourceId
required
string

The id of the resource to check for permissions. For example the process definition key.

resourceName
required
string

The name of the resource to return permission for.
Possible values:
Application
Authorization
Batch
DecisionDefinition
DecisionRequirementsDefinition
Deployment
Filter
Group
GroupMembership
ProcessDefinition
ProcessInstance
Task
HistoricTask
HistoricProcessInstance
Tenant
TenantMembership
User
Report
Dashboard
UserOperationLogCategory
System

Responses

workflow.authorization.put

Creates a new workflow authorization or updates an existing one.

Search Academy for more details about: workflow.authorization.put.

query Parameters
authorizationId
string

The id of the authorization to update. If null or empty, a new one will be created.

groupId
string

The group name this authorization is for.

permissions
required
string

A list of strings holding the permissions provided by this authorization.

resourceId
string

The name of the resource. For example the task id in case resourceType is a task.
The value * means all resources of given type. If null or empty, * is the default.

resourceName
string

The name of the resource to filter for. Has precedence over resourceType if both are given.
Possible values:
Application
Authorization
Batch
DecisionDefinition
DecisionRequirementsDefinition
Deployment
Filter
Group
GroupMembership
ProcessDefinition
ProcessInstance
Task
HistoricTask
HistoricProcessInstance
Tenant
TenantMembership
User
Report
Dashboard
UserOperationLogCategory
System
https://docs.camunda.org/manual/7.21/user-guide/process-engine/authorization-service/#resources

resourceType
string

A name representing the resource type.
For example: task=7, processDefinition=6, processInstance=8
See here for a list of resource types and their integers:
https://docs.camunda.org/manual/7.21/user-guide/process-engine/authorization-service/#resources

type
string

The type of the authorization. 0=global, 1=grant, 2=revoke.

userId
string

The username this authorization is for. If * then it is valid for all users.

Responses

workflow.cache.clear

Cleans all caches related to any workflow. Including the groups cache in the workflow engine.
Note: This command is a maintenance command and not intended to be used in production!
It can change at any time without notice!

Search Academy for more details about: workflow.cache.clear.

Responses

workflow.definition.deploy

Deploys a given BPMN from the body or a given property into the underlying workflow engine.

Search Academy for more details about: workflow.definition.deploy.

query Parameters
appId
string

The appId to be used to prefix the process name with: appId_workflowname. If null or empty no prefix is appended.

name
required
string

The name to deploy the workflow under.

propertyKey
string

DEPRECATED. Use propertyPath instead.

propertyPath
string

The optional path of a workflow property containing a BPMN as value. If this is given, name and appId will be extracted from this key in case these params are empty. If this param is missing, the BPMN is expected to be in the body.

Responses

workflow.definition.details.find

Returns all workflow definition details without loading the full BPMNs.

Search Academy for more details about: workflow.definition.details.find.

query Parameters
locale
string

If given, the name of the process definitions returned will be translated to this locale in case an i18n translation exists for it.

Responses

workflow.definition.find

Returns all workflow definition properties from the property store, the currently logged-in user is allowed to see.

Search Academy for more details about: workflow.definition.find.

Responses

workflow.definition.undeploy

Undeploys a given BPMN from workflow engine.

Search Academy for more details about: workflow.definition.undeploy.

query Parameters
name
required
string

The name of the deployment to remove.

Responses

workflow.deployment.find

Finds all deployments from the workflow engine matching given parameters and puts them into the body.

Search Academy for more details about: workflow.deployment.find.

query Parameters
deploymentId
string

Id of the deployment. Exact match.

name
string

Name of the deployment. Exact match.

Responses

workflow.event

Sends an event message to a message endpoint inside
a given workflow. As payload of the event message,
the current pipe message will be used as input.

Search Academy for more details about: workflow.event.

query Parameters
businessKey
string

The business key of the process which needs to be informed by the event. One of businessKey or processInstanceId must be given.

messageName
required
string

The name of this message. It is used to find the endpoint to be triggered in the workflow.

processInstanceId
string

The processInstanceId which refers to the process to be notified by this event. One of businessKey or processInstanceId must be given.

variables
string

The process variables to apply on message target.

Responses

workflow.filter.delete

query Parameters
filterId
string

The id of the filter to delete.

Responses

workflow.filter.execute

Executes the given filter and returns the matching resources.
Note: Currently only tasks as resource types are supported to be returned by this command.
See: https://docs.camunda.org/rest/camunda-bpm-platform/7.21/#tag/Filter/operation/executeFilterList

Search Academy for more details about: workflow.filter.execute.

query Parameters
filterId
required
string

The id of the filter to execute.

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

Responses

workflow.filter.get

query Parameters
filterId
string

The id of the filter to return.

locale
string

If given, the items returned will be translated using the given locale.

Responses

workflow.filter.list

Returns all saved filters the currently logged-in user is allowed to see.

Search Academy for more details about: workflow.filter.list.

query Parameters
filterId
string

The id of the filter to return.

includeHidden
string

Whether to include hidden filters marked with pipeforce_hidden=true.

locale
string

If given, the items returned will be translated using the given locale.

max
number

The max number of entries to return. May not be greater than 100.

name
string

The exact name of the filter to return.

nameLike
string

The string which must contain in the name of the filter.

offset
number

The offset to start return entries.

orderBy
string

The sort order. One of: asc, desc

owner
string

The owner of the filter.

sortBy
string

How to sort the result? Possible values: filterId, resourceType, name, owner, priority

Responses

workflow.filter.put

Creates or updates a workflow resource filter.
If a filter with given name or id already exists -> Updates.
See: https://docs.camunda.org/rest/camunda-bpm-platform/7.21/#tag/Filter/operation/createFilter

Search Academy for more details about: workflow.filter.put.

query Parameters
authorizations
string

The list of Filter authorizations to be created and linked with this filter.

filterId
required
string

The id of an existing filter. If given, filter will be updated instead of newly created.

forceCreate
string

By default if a filter without id but with given name already exists, it will be updated.
If this param is set to true, the filter will be created newly even if a filter with this name already exists.

name
required
string

The name of he filter to create.

owner
string

The username of the owner of the filter. If null or empty, the currently logged-in
user will be set.

properties
string

The properties to the filter as JSON.

query
string

The filter query as JSON.

resourceName
required
string

The name of the resource to filter for.
Possible values:
Application
Authorization
Batch
DecisionDefinition
DecisionRequirementsDefinition
Deployment
Filter
Group
GroupMembership
ProcessDefinition
ProcessInstance
Task
HistoricTask
HistoricProcessInstance
Tenant
TenantMembership
User
Report
Dashboard
UserOperationLogCategory
System

Responses

workflow.group.list

Returns all group names eligible to participate in given workflow.

Search Academy for more details about: workflow.group.list.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

processDefinitionId
string

The id of the process definition.

Responses

workflow.member.message

Sends a message to the given workflow member. In case the workflow member is not already added to the workflow model, adds a new entry to a given workflow model, which is usually a data model (JSON) with a single member structure like this: workflowModel.members[someUserId] whereas in this level user, taskUrl and shareUrl will be added if required.

Search Academy for more details about: workflow.member.message.

query Parameters
message
string

The invite message to be used to send an invite email to the new member. Can be a text message, a uri or content object template.

model
string

The model to be used in the invite message template.

resourcePath
string

The path to a resource or folder to create a share from for the new member. If null or empty, no share is created.

subject
string

The subject of the invite message.

taskUrl
string

The url of a workflow task for the new member. If null or empty, no task is shown.

userId
string

The uuid of the user to add as member to the workflow model. One of userId or username is required.

username
string

The username of the user to add as member to the workflow model. One of userId or username is required.

workflowModel
required
string

The workflow model where to add the new user at (inside the sub element workflowModel/members/[userId)]. Can be a PEL which points to an loaded instance or a uri which points to a workflow model instance key.

Responses

workflow.model

Utility command to easier workflow model handling.

Search Academy for more details about: workflow.model.

query Parameters
mappings
string

A list of mapping rules to be applied to the given workflow model. See online docs for more details about such mapping rules.

Responses

workflow.model.attachment.get

Returns property.attachment.content from process model property attachment.

Search Academy for more details about: workflow.model.attachment.get.

query Parameters
fileName
required
string

The attachment name.

processInstanceId
required
string

The process instance id.

Responses

workflow.model.attachment.put

Does property.attachment.put to process model property attachment.

Search Academy for more details about: workflow.model.attachment.put.

query Parameters
contentType
string

The content type to be used for this attachment.

fileName
required
string

The name of the attachment to be created. If an attachment with this name already exists, updates the existing one.

processInstanceId
required
string

The process instance id.

Responses

workflow.operation.list

Finds all user operations from the workflow engine matching given parameters and puts them into the body.

Search Academy for more details about: workflow.operation.list.

query Parameters
taskId
required
string

The id (not name!) of the task to claim.

Responses

workflow.process.delete

query Parameters
processInstanceId
required
string

The id of the process instance to be deleted.

Responses

workflow.process.find

Returns all process instances matching the given criteria.

Search Academy for more details about: workflow.process.find.

query Parameters
active
string

If true, only active processes are returned.

completed
string

If true, only completed processes are returned.

finished
string

If true, only completed and terminated processes are returned.

includeVariables
string

If true, includes the process variables for each instance.

locale
string

If given, the name of the process instances returned will be translated to this locale in case an i18n translation exists for it.

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

processDefinitionKey
string

Filter by BPMN name.

processInstanceBusinessKey
string

Filter tasks by businessKey.

Responses

workflow.process.get

Returns the process instance matching the given id.

Search Academy for more details about: workflow.process.get.

query Parameters
processInstanceId
required
string

The process instanceid.

Responses

workflow.process.task.list

Returns all tasks with variables for a given workflow.

Search Academy for more details about: workflow.process.task.list.

query Parameters
includeFields
string

Should each task include its historic (form) fields as defined in the BPMN?

includePermissions
string

Should each task also include its permission info based on the currently logged-in user?

includeVariables
string

Should each task include its historic variables?

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

processInstanceId
required
string

Filter tasks by process instance id.

Responses

workflow.search

Can execute a freestyle (SQL) search on all elements of the workflow database.

Search Academy for more details about: workflow.search.

query Parameters
includeFields
string

Should each task include its historic (form) fields as defined in the BPMN?

includePermissions
string

Should each task also include its permission info based on the currently logged-in user?

includeVariables
string

Should each task include its historic variables?

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

parameters
string

The optional parameters to be passed to the query.
Any parameter myParam can be accessed as :myParam inside the query.
The params offset and max will be passed automatically to the query and
can be accessed as :offsetParam and :maxParam there.

sql
string

An SQL query to be executed in the workflow database.

Responses

workflow.start

Starts a new instance of a process in the workflow engine.
Creates a new property under global/app/my.app/process/PROCESS_ID.

Search Academy for more details about: workflow.start.

query Parameters
businessKey
string

The business key to pass to the workflow engine for later references.

claim
string

Defines a username to claim the first user task for.
If this parameter is set and the workflow starts with one or more (user) tasks,
all of these (user) tasks will be initially assigned (claimed) to the user with given username.
In case the workflow contains no (user) tasks to be claimed, nothing happens.

key
required
string

The key of the workflow to start in the workflow engine.

variables
string

A map of optional variables to be passed to the workflow process.
If this param is missing, null or empty, no workflow variables will be passed, except the default ones
(those starting with prefix piwf_).

workflowModelPath
string

The optional property path of the central process model instance to be used.
Will be passed under this name prefixed with piwf_ to the process engine as process variable.
Note: The model instance path must start with an app path followed by an data path.
For example global/app/myApp/data/someObject/SOME_UUID.
Or it must be of format data/someObject/SOME_UUID to be relative.

workflowStartedBy
string

The user uuid who started this process.
Will be passed also under name piwf_startedBy as process variable.
If null or empty, the uuid of the currently logged-in user will be used.

Responses

workflow.task.claim

Claims a given task to a given user.

Search Academy for more details about: workflow.task.claim.

query Parameters
taskId
required
string

The id (not name!) of the task to claim.

unclaimBefore
boolean

If true (= default), the task will be unclaimed from any existing assignee before it will be claimed again to avoid any error.

username
required
string

The username of the user to claim the task for

Responses

workflow.task.complete

Completes a given workflow task and puts any resulting variable from the task in the body.

Search Academy for more details about: workflow.task.complete.

query Parameters
claim
string

A username to define if to claim task by specified user before completion. Default is null, when claim is not needed.

taskId
required
string

The id (not name!) of the task to complete.

variables
string

A map of variables to be passed to the task. Can be null.

Responses

workflow.task.delegate

query Parameters
taskId
required
string

The id of the task instance to delegate.

username
required
string

The name of the target user to delegate to.

Responses

workflow.task.get

query Parameters
includeFields
string

Should each task include its historic (form) fields as defined in the BPMN?

includePermissions
string

Should each task also include its permission info based on the currently logged-in user?

includeProcessDefinition
string

If true, an additional lookup is done for the task to extract the processDefinitionKey and processDefinitionName.

includeTags
string

If true, an additional lookup for the tags of a workflow definition in (= property tags in the property) will be done. These tags can contain PEL expressions in the value. They will be interpreted if exists. The model of the PEL contains the task object so it can be accessed via ${task} then.

includeVariables
string

Should each task include its historic variables?

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

searchLocation
string

Defines where to load the task from. Can be active (to load from active tasks), history (to load from
history tasks) or auto (searches first in active and if there is no result, searches in history).

taskId
string

The id of the task instance.

Responses

workflow.task.group.delete

Removes candidate groups from a task instance.

Search Academy for more details about: workflow.task.group.delete.

query Parameters
groupNames
string

The name of groups to delete, separated by comma or PEL list.

taskId
required
string

The id of the task instance

Responses

workflow.task.group.list

Returns all candidate groups for a given task instance.

Search Academy for more details about: workflow.task.group.list.

query Parameters
taskId
required
string

The id of the task instance

Responses

workflow.task.group.put

Adds candidate groups to a task instance.

Search Academy for more details about: workflow.task.group.put.

query Parameters
groupNames
string

The name of groups to assign, separated by comma or PEL list.

taskId
required
string

The id of the task instance

Responses

workflow.task.history.list

Returns all history tasks matching the given criteria.

Search Academy for more details about: workflow.task.history.list.

query Parameters
assignee
string

Filter tasks by assignee.

dueBefore
string

Shows all tasks that are due before this ISO8601 date. Optional

includeFields
string

Should each task include its historic (form) fields as defined in the BPMN?

includePermissions
string

Should each task also include its permission info based on the currently logged-in user?

includeVariables
string

Should each task include its historic variables?

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

processInstanceBusinessKey
string

Filter tasks by businessKey.

processInstanceId
string

Filter tasks by process instance id.

Responses

workflow.task.list

Returns all tasks for a given workflow. Returned parameters are dynamically and depend on the underlying workflow engine. Default result format is [{id:taskId, name:taskName, assignee:userId, created:createdDate, due:dueDate, tenant:tenantId}, ...]. For a detailed description about all returned attributes see the default implementation: https://docs.camunda.org/rest/camunda-bpm-platform/7.20/#tag/Task/operation/queryTasks

Search Academy for more details about: workflow.task.list.

query Parameters
assignee
string

Filter tasks by assignee.

dueBefore
string

Shows all tasks that are due before this ISO8601 date. Optional

includeFields
string

Should each task include its historic (form) fields as defined in the BPMN?

includePermissions
string

Should each task also include its permission info based on the currently logged-in user?

includeProcessDefinition
string

If true, an additional lookup is done for each task to extract the processDefinitionKey and processDefinitionName.

includeTags
string

If true, an additional lookup for the tags of a workflow definition in (= property tags in the property) will be done. These tags can contain PEL expressions in the value. They will be interpreted if exists. The model of the PEL contains the task object so it can be accessed via ${task} then.

includeVariables
string

Should each task include its historic variables?

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

processInstanceBusinessKey
string

Filter tasks by businessKey.

processInstanceId
string

Filter tasks by process instance id.

taskId
string

Filter tasks by this task id.

Responses

workflow.task.open.list

Returns all open tasks grouped by assignee. Returned parameters are dynamically and depend on the underlying workflow engine. Default result format is [{id:taskId, name:taskName, assignee:userId, created:createdDate, due:dueDate, tenant:tenantId}, ...]. For a detailed description about all returned attributes see the default implementation: https://docs.camunda.org/manual/7.7/reference/rest/task/get-query/

Search Academy for more details about: workflow.task.open.list.

query Parameters
assignee
string

Filter tasks by assignee.

dueBefore
string

Shows all tasks that are due before this ISO8601 date. Optional

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

processInstanceBusinessKey
string

Filter tasks by businessKey.

processInstanceId
string

Filter tasks by process instance id.

Responses

workflow.task.open.remind

Sends a reminder email to each assignee having open tasks matching given criteria.

Search Academy for more details about: workflow.task.open.remind.

query Parameters
assignee
string

Filter tasks by assignee.

dueBefore
string

Shows all tasks that are due before this ISO8601 date. Optional

processInstanceBusinessKey
string

Filter tasks by businessKey.

processInstanceId
string

Filter tasks by process instance id.

Responses

workflow.task.permission.list

Lists all authorization permissions for the currently logged-in user on a given task.

Search Academy for more details about: workflow.task.permission.list.

query Parameters
taskId
required
string

The id of the task to check permissions for.

Responses

workflow.task.put

Updates a given workflow task. The fields to update must be in the input of the command as JSON.
Possible fields are:
id: The id of the task to update.
due: The due date of the task in UTC format like yyyy-MM-dd'T'HH:mm:ss.SSSZ.
followUp: The follow up date in UTC format like yyyy-MM-dd'T'HH:mm:ss.SSSZ.
description: The description of the task.
priority: The priority of the task (integer).
name: The name of the task.

Search Academy for more details about: workflow.task.put.

Responses

workflow.task.resolve

Resolves a delegated task. Meaning, the originally assigned user will become again the assignee and the variables required to resolve a task will be set.

Search Academy for more details about: workflow.task.resolve.

query Parameters
taskId
required
string

The id of the task instance to resolve.

variables
string

The optional workflow variables required in order to resolve the task.

Responses

workflow.task.search

Searches for matching tasks in the system. Can combine filter + custom query + quickSearch.
Also supports pagination and direct SQL queries to return required tasks.

Search Academy for more details about: workflow.task.search.

query Parameters
filterId
string

The id of the filter to load and execute. If additionally a custom query is given, it will be merged
with the query of the filter and will have precedence (= custom query will overwrite filter query).
For custom query and merge, user must have appropriate permissions.

includeFields
string

Should each task include its historic (form) fields as defined in the BPMN?

includePermissions
string

Should each task also include its permission info based on the currently logged-in user?

includeProcessDefinition
string

If true, an additional lookup is done for each task to extract the
processDefinitionKey and processDefinitionName.

includeTags
string

If true, an additional lookup for the tags of a workflow definition in
(= property tags in the property) will be done. These tags can contain PEL expressions in the value.
They will be interpreted if exists. The model of the PEL contains the task
object so it can be accessed via ${task} then.

includeVariables
string

Should each task include its historic variables?

max
number

The max number of entries to return. May not be greater than 100.

offset
number

The offset to start return entries.

query
string

The custom query JSON object. See here for details about the allowed fields:
https://docs.camunda.org/rest/camunda-bpm-platform/7.21/#tag/Task/operation/queryTasks
Note: If this custom query has no parameter taskId or taskIdIn, additionally the param filterId is required.

quickSearch
string

The quick search string to be applied on the tasks of the filter and/or query result.
This will overwrite filter and/or query fields where required.

searchLocation
string

Defines where to search. Can be active (to search only in active tasks), history (to search only in
history tasks) or auto (searches first in active and if there is no result, searches in history).
If a filterId is given, its pipeforce_searchLocation will be used and can be overwritten
by param only in case user has permission to do so.

sql
string

A custom SQL query to be executed at workflow backend which returns a list of matching tasks.
The query must return JSON objects matching required task fields.
Note: Direct SQl calls by this parameter can be used only by developers, admins and support users.
It is not intended for production use in apps.
For this, store the sql query in a custom filter instead using
the filter properties key: pipeforce_sql.
If this sqlQuery param is given, these params will be ignored: filterId, quickSearch, searchLocation.
In this case the query params can be used to pass query parameters to the SQL. You can access
them using :paramName.

Responses

workflow.task.unclaim

Unclaims a given task from any user.

Search Academy for more details about: workflow.task.unclaim.

query Parameters
taskId
required
string

The id (not name!) of the task to unclaim.

Responses

workflow.user.list

Returns all user names eligible to participate in given workflow.

Search Academy for more details about: workflow.user.list.

query Parameters
filter
string

The filter query to additionally filter the result. Not applied if null

max
number

The max number of entries to return. If set to a higher value than 100, will be reset to 100.

offset
number

The offset to start return entries.

processDefinitionId
string

The id of the process definition.

Responses

workflow.variable.list

Returns the variables of a given process instance from the workflow engine as JSON whereas the name of the variable becomes the JSON attribute name and the value of the variable becomes the JSON attribute value.

Search Academy for more details about: workflow.variable.list.

query Parameters
includeSystemVars
string

Should the piwf_ system variables be included in result? If false (default) they will be filtered out.

parseJsonString
string

Tests if a workflow variable contains a JSON string and if so, converts this JSON string into a JSON object and sets it as value for the variable in the output JSON.

processInstanceId
required
string

The process instance id.

Responses

zip

zip

Compresses a given content in the body and puts the compressed data as collection reference to the output. If input is a content collection, puts all entries into the resulting zip file.

Search Academy for more details about: zip.

query Parameters
level
string

Sets the compression level 0-9. If not set, the default level is used which could vary.

name
string

The name of the final zip file. If not given, the name will be set by this rule: If it is a single entry, uses the name of the entry + .zip. If there are multiple entries, creates a random name + .zip

Responses

@calc

@calc.sum

Does a "nice" sum the values of the given list with high precision.
If an item in the given list is a string, it will be tried
to convert it to a number. If the value is null or cannot be converted it will be excluded from
the summary but no exception is thrown -> be nice.

Search Academy for more details about: @calc.sum.

query Parameters
list
object

The list of numbers to sum-up.

Responses

@calc.avg

Calculates the average on the value of given list with a precision of two decimal points.

Search Academy for more details about: @calc.avg.

query Parameters
list
object

The list of numbers.

Responses

@calc.round

Rounds input to scale number of digits. Multiple rounding strategies can be applied.

Search Academy for more details about: @calc.round.

query Parameters
value
object

The value to round. BigDecimal, double, float, integer and long are supported.

scale
integer

The scale to round to. Positive value scales in fraction part, negative in integer.

mode
string

One of UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, HALF_EVEN, UNNECESSARY can be used. For details
see https://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html

Responses

@calc.roundUp

Rounds input to scale number of digits up.
See also {@link CalcPelUtil#round(Object, Integer, String)} for more options.

Search Academy for more details about: @calc.roundUp.

query Parameters
value
object

The value to round. BigDecimal, double, float, integer and long are supported.

scale
integer

The scale to round to. Positive value scales in fraction part, negative in integer.

Responses

@calc.roundDown

Rounds input to scale number of digits down.
See also {@link CalcPelUtil#round(Object, Integer, String)} for more options.

Search Academy for more details about: @calc.roundDown.

query Parameters
value
object

The value to round. BigDecimal, double, float, integer and long are supported.

scale
integer

The scale to round to. Positive value scales in fraction part, negative in integer.

Responses

@config

@config.value

Returns the configuration value from given app with given key.

Search Academy for more details about: @config.value.

query Parameters
scope
string

The name of the scope (e.g. the app name) to look-up the config inside.

key
string

The config key. If global config is defined its value is returned. Otherwise, app config value.

Responses

@config.value

Returns the global configuration with given key.

Search Academy for more details about: @config.value.

query Parameters
key
string

The global config key.

Responses

@content

@content.newCollection

Creates a new content collection and initializes it with given uris.

Search Academy for more details about: @content.newCollection.

query Parameters
uris
string

The list of content uris to add to the new collection.

Responses

@content.newCollection

Creates a new, empty content collection at given location.

Search Academy for more details about: @content.newCollection.

Responses

@content.newContent

Creates a new uri content object and returns it.

Search Academy for more details about: @content.newContent.

query Parameters
uri
string

The uri to be used for the content object

Responses

@content.fromBase64

Wraps the given base64 string into a content object

Search Academy for more details about: @content.fromBase64.

query Parameters
base64String
string

The base64 string.

Responses

@content.fromBase64

Wraps the given base64 string into a content object

Search Academy for more details about: @content.fromBase64.

query Parameters
base64String
string

The base64 string.

name
string

The name of the content object (= file name)

Responses

@content.fromBase64

Wraps the given base64 string into a content object

Search Academy for more details about: @content.fromBase64.

query Parameters
base64String
string

The base64 string.

name
string

The name of the content object (= file name)

contentType
string

The content type of the base64 encoded string (when converted back).

Responses

@content.from

Tries to convert the given object to a content object which can be used
to persist the data.

Search Academy for more details about: @content.from.

query Parameters
object
object

The object to convert.

contentType
string

The content type to be set on the content object.

contentEncoding
string

The encoding to be set on the content object.

name
string

The name to be set on the content object.

Responses

@content.from

Tries to convert the given object to a content object which can be used
to persist the data.

Search Academy for more details about: @content.from.

query Parameters
object
object

The object to convert.

name
string

The name to be set on the content object.

Responses

@content.from

Tries to convert the given object to a content object which can be used
to persist the data.

Search Academy for more details about: @content.from.

query Parameters
object
object

The object to convert.

Responses

@convert

@convert.toBase64

Encodes the given value to base64. If value is not a text, it will be converted to a text before conversion.

Search Academy for more details about: @convert.toBase64.

query Parameters
value
object

The value to encode.

Responses

@convert.fromBase64

Decodes the given base64 encoded string.

Search Academy for more details about: @convert.fromBase64.

query Parameters
base64String
string

The base64 encoded string.

Responses

@convert.fromBase64ToBytes

Decodes the given base64 encoded string.

Search Academy for more details about: @convert.fromBase64ToBytes.

query Parameters
base64String
string

The base64 encoded string.

Responses

@convert.toJson

Converts a given object structure to JSON.

Search Academy for more details about: @convert.toJson.

query Parameters
object
object

The object to convert.

Responses

@convert.toXMLString

Converts a given object to an XML string.

Search Academy for more details about: @convert.toXMLString.

query Parameters
object
object

The object to convert.

Responses

@convert.toDOM

Converts a given object to an XML DOM representation.

Search Academy for more details about: @convert.toDOM.

query Parameters
object
object

The object to convert.

Responses

@convert.toMap

Converts the given object to a map structure.

Search Academy for more details about: @convert.toMap.

query Parameters
object
object

The object to convert to a map structure.

Responses

@convert.toMapOrList

Converts the given object to a map or list structure depending on which is more appropriate.

Search Academy for more details about: @convert.toMapOrList.

query Parameters
o
object

The object to convert to a map or list structure.

Responses

@convert.lazy

Converts all supported uri variants to LazyUriMap

Search Academy for more details about: @convert.lazy.

query Parameters
uri
string

The uri to load from.

Responses

@convert.toLong

Converts the given value to a long value.
If input value is the boolean true or false, 1 or 0 as long is returned.
If input is the string "true" or "false, 1 or 0 as long is returned.
If input is empty string "", 0 is returned.

Search Academy for more details about: @convert.toLong.

query Parameters
value
object

The value object to convert to long.

Responses

@convert.toInteger

Converts the given value to a long value.
If input value is the boolean true or false, 1 or 0 as int is returned.
If input is the string "true" or "false, 1 or 0 as int is returned.
If input is empty string "", 0 is returned.

Search Academy for more details about: @convert.toInteger.

query Parameters
value
object

The value object to convert to integer.

Responses

@convert.toBoolean

Converts the given value to a boolean value.
If input is the string "true" or "false, true or false as boolean is returned.
If input is empty string "", false is returned.
If input is null, false is returned.
Any numeric value > 0, true is returned.
Any numeric value <= 0, false is returned.

Search Academy for more details about: @convert.toBoolean.

query Parameters
value
object

The value object to convert to boolean.

Responses

@convert.toDecimal

Converts the given value into a big decimal with given precision.

Search Academy for more details about: @convert.toDecimal.

query Parameters
value
object

The value to convert.

Responses

@convert.toDecimal

Converts the given value to a decimal number.

Search Academy for more details about: @convert.toDecimal.

query Parameters
value
object

The value to convert to decimal.

decimalSymbol
string

The decimal symbol to be used. Can be a comma , a dot . or a locale tag like de,
en, fr for example. If null or empty, the locale tag of the currently logged-in user is used.
If this is null, locale tag de is used as default.

Responses

@convert.toDecimal

Converts the given value to a decimal number by applying the given pattern and locale.

Search Academy for more details about: @convert.toDecimal.

query Parameters
value
object

The value to convert to decimal.

pattern
string

The decimal pattern to apply. For example: #.###

decimalSymbol
string

The decimal symbol to be used. Can be a comma , a dot . or a locale tag like de,
en, fr for example. If null or empty, the locale tag of the currently logged-in user is used.
If this is null, locale tag de is used as default.

Responses

@convert.toDecimalString

Formats a given number to a decimal string using the given decimal pattern and
locale tag like de, en, fr aso.

Search Academy for more details about: @convert.toDecimalString.

query Parameters
value
object

The decimal number to format to a string.

pattern
string

The decimal pattern like #.## for example.

decimalSymbol
string

The decimal symbol to be used. Can be a comma , a dot . or a locale tag like de,
en, fr for example. If null or empty, the locale tag of the currently logged-in user is used.
If this is null, locale tag de is used as default.

Responses

@convert.toDecimalString

Formats a given number to a decimal string using the given locale tag like de, en, fr aso.

Search Academy for more details about: @convert.toDecimalString.

query Parameters
value
object

The decimal number to format to a string.

decimalSymbol
string

The decimal symbol to be used. Can be a comma , a dot . or a locale tag like de,
en, fr for example. If null or empty, the locale tag of the currently logged-in user is used.
If this is null, locale tag de is used as default.

Responses

@convert.toByteArray

Converts the given object to a byte array.

Search Academy for more details about: @convert.toByteArray.

query Parameters
object
object

The object to convert.

Responses

@currency

@currency.normalize

Normalizes a given number string in several steps:


  • Removes any code or unit symbol and other non-number chars including whitespaces from the number
    string expect periods and commas.

  • Removes the thousand separator (if given).

  • Makes sure the decimal separator becomes the period .



Examples:


  • @normalize("€1.234,56", ",") -> 1234.56

  • @normalize("$1,234.56", ".") -> 1234.56

  • @normalize("1,234.56", ".") -> 1234.56

  • @normalize("1,234.56", ",") -> 1234.56

  • @normalize("EUR 123 456,00", ",") -> 123456.00

1

Search Academy for more details about: @currency.normalize.

query Parameters
currencyString
string

The currency string to normalize. Can be any currency value
string with or without currency symbol or code.

thousandSeparator
string

The thousand separator to be used. If null or empty, it will be tried
to guess from the currency string.

Responses

@currency.normalize

Similar to {@link #normalize(String, String)} but guesses the thousand separator.

Search Academy for more details about: @currency.normalize.

query Parameters
currencyString
string

The currency string to normalize. Can be any currency value
string with or without currency symbol or code.

Responses

@currency.extractNumeric

Removes all non-number related chars from the string. For example codes and symbols like EUR, €
and also any whitespace.

Search Academy for more details about: @currency.extractNumeric.

query Parameters
currencyString
string

The currency string to extract the numeric from.

Responses

@currency.extractUnit

Removes all number related chars from the string. Usually only the unit/symbol will stay.
For example: "1,200 EUR" -> "EUR"

Search Academy for more details about: @currency.extractUnit.

query Parameters
currencyString
string

The currency string to extract the unit from.

Responses

@currency.subunitize

Converts the given currency number into its subunit by detecting the subunit ratio first
and then multiplying with it. Examples:


  • subunitize(100,00, "EUR") = 10000 EUR Cents

  • subunitize(100,00, "USD") = 10000 USD Cents

  • subunitize(100,00, "JPY") = 100 JPY


Hint: This is usually done before currency values are stored in the backend since it is
easier to handle and calculate with integer values instead of floats.

Search Academy for more details about: @currency.subunitize.

query Parameters
number
bigdecimal

The amount of base unit to convert to subunits.

currencyCode
string

The currency code or symbol the number is given in, in order to detect subunit from.

Responses

@currency.subunitize

Same as {@link #subunitize(BigDecimal, String)} but accepts a currency string as input.
The string will be normalized first.

Search Academy for more details about: @currency.subunitize.

query Parameters
currencyString
string

The currency string to be normalized and then used to subunitize.

thousandSeparator
string

The grouping separator to be applied when normalizing.

currencyCode
string

The currency code or symbol the currency string is given in, in order to detect subunit from.

Responses

@currency.subunitize

Same as {@link #subunitize(BigDecimal, String)} but accepts a currency string as input.
The string will be normalized first but trying to guess the thousand separator.

Search Academy for more details about: @currency.subunitize.

query Parameters
currencyString
string

The currency string to be normalized and then used to subunitize.

currencyCode
string

The currency code or symbol the currency string is given in, in order to detect subunit from.

Responses

@currency.subunitRatio

Returns the ratio required to convert a value given as currency base (like EUR)
to its subunit (like Cent). This is the value, the base unit needs to be multiplied with
in order to get the subunit amount (for example if ratio 100: 1 EURO x 100 : 100 Cents).
Since the ratio depends on the currency, this method must be consulted for the
required currency. For Japanese Yen for example, the ratio is 1, not 100.

Search Academy for more details about: @currency.subunitRatio.

query Parameters
code
string

The currency code or symbol.

Responses

@currency.groupingSeparatorByLang

Returns the (thousand) grouping separator for the given locale (language) string.
Examples:


  • DE = ,

  • US = .

  • GB = .



Search Academy for more details about: @currency.groupingSeparatorByLang.

query Parameters
lang
string

The country/language string to return the grouping separator for. For example: DE or US, ...

Responses

@currency.defaultGroupingSeparatorByCode

Returns the default grouping (thousand) separator by given currency code or symbol.
Note: Since the grouping separator could differ by language, even if the same currency is used,
this will return only a default value. If you need to concrete separator you should use
{@link #groupingSeparatorByLang(String)} instead. The default value is , for EUR and . for
any other code.
Examples:


  • EUR : .

  • GBP : ,

  • USD : ,



Search Academy for more details about: @currency.defaultGroupingSeparatorByCode.

query Parameters
code
string

The code, symbol or currency string to guess the default separator from.

Responses

@currency.guessGroupingSeparator

Tries to guess the grouping (thousand) separator from the given currency string.

Search Academy for more details about: @currency.guessGroupingSeparator.

query Parameters
currencyString
string

Can by any currency string like $1.000.000 or 123,456.00 for example.
Any currency unit or symbol will be ignored for the check.

Responses

@currency.code

Returns the ISO 4217 (see: https://en.wikipedia.org/wiki/ISO_4217) currency code
of a given currency string, symbol or code.
Some examples:


  • € returns: EUR

  • $ returns: USD

  • £ returns: GBP

  • EUR returns: EUR

  • USD returns: USD

  • $ 1.000 returns: USD

  • 1,00 EUR returns: EUR



Search Academy for more details about: @currency.code.

query Parameters
currencyString
string

The currency string containing the symbol or the currency code.

Responses

@data

@data.set

Sets the given value on the given data object at the given element path where every item is separated by a dot.
If an item at the given path doesnt exist, it will be created automatically (is supported by given object).
For example to create a new entry person.name inside a given map, you could use:
set(someMap, "person.name", "Some Name"). This will create the nested map person with an entry of
type name in it.

Search Academy for more details about: @data.set.

query Parameters
data
object

The data object.

path
string

The path inside the data object to set the value.

value
object

The value to set.

Responses

@data.put

Expects the given data to be map-like structure and puts the given value under given key to it.
Overwrites any existing entry under this key.

Search Academy for more details about: @data.put.

query Parameters
data
object

The map-like data structure.

key
object

The key to add the value under.

value
object

The value to add.

Responses

@data.select

Applies the given selection string on the given input object in order to extract
data from the input object. If there is more than one selection string, puts the
result of each string into a new map entry whereas the key is the selection string
or the name from the "AS NAME" suffix (note the upper case AS). Examples of selection strings:


  • 'person.firstName' = Extracts the firstName from the input object and returns the result as a
    entry in the mapping using the key 'person.firstName'. If it is the only selection string, returns the
    value directly.

  • 'person.firstName AS name' = Extracts the firstName from the input object and returns the result as a
    entry in the mapping using the key 'name'

  • 'person.hobbies.size()' = Extracts the number of hobbies from the input object and returns the result as a
    entry in the mapping using the key 'person.hobbies.size()'. If it is the only selection string, returns the
    value directly.

  • 'person.hobbies.size() AS numOfHobbies' = Extracts the number of hobbies from the input object and returns
    the result as an entry in the mapping using the key 'numOfHobbies'



Search Academy for more details about: @data.select.

query Parameters
input
object

The input to apply the selection strings on. May not be null.

selections
string

One or more selection strings. If null or empty, returns an empty map.

Responses

@data.jmespath

Applies the given JMESPath query on given input and returns the
query result.

Search Academy for more details about: @data.jmespath.

query Parameters
query
string

The JMESPath query to be executed. See: https://jmespath.org/

input
object

The input to apply the query on.

Responses

@data.jsonpath

Applies the given JSONPath query on given input and returns the
query result.

Search Academy for more details about: @data.jsonpath.

query Parameters
query
string

The JSONPath query to be executed. See: https://goessner.net/articles/JsonPath/

input
object

The input to apply the query on.

Responses

@data.integerList

Creates a new list and fills it with integers from startIndex up to endIndex.
For example a call of createListWithIntegers(2, 5) would return a list with these entries:
[2,3,4,5].

Search Academy for more details about: @data.integerList.

query Parameters
startInt
int

The start index to fill the list.

endInt
int

The end index to fill the list up to.

Responses

@data.size

Calculates the size of the given value regardless of the type it is.

Search Academy for more details about: @data.size.

query Parameters
value
object

The value to count for size.

Responses

@data.isEmpty

Checks if given data structure is null or empty.
For example:


  • If it is a list, returns true in case the list contains no entry or is null.

  • If it is a map, returns true in case the map contains no entry or is null.

  • If it is a node, returns true in case the node contains no entry or is null.

  • If it is a string, returns true in case the string contains no chars or is null.



Search Academy for more details about: @data.isEmpty.

query Parameters
data
object

The data structure to check.

Responses

@data.remove

Removes the field with given key at first level of the given data object.

Search Academy for more details about: @data.remove.

query Parameters
data
object

The object data to apply the removal at.

key
string

The key of the field to remove.

Responses

@data.has

Checks whether given data object has an attribute, member or getter with given name.
Also supports property path syntax for recursive search on given data object.
Whereas each property name must be separated by a dot.
For example: person.firstName

Search Academy for more details about: @data.has.

query Parameters
data
object

The data object to scan for attribute.

attribute
string

The attribute name to search for.

Responses

@data.get

Returns the value of the given data attribute or null in case it doesn't exist.
This way an additional attribute non-existent check can be avoided.

Search Academy for more details about: @data.get.

query Parameters
data
object

The data to read the value from.

attribute
string

The attribute name to read from the data.

Responses

@data.emptyObject

Responses

@data.emptyList

Responses

@data.keys

Returns the keys of the given object at root level. Which could be a JSON object for example.
If the object doesn't have a key, returns empty list. Never null.

Search Academy for more details about: @data.keys.

query Parameters
data
object

A key value structure.

Responses

@data.type

Returns the type of the given data object. Can be one of:


  • OBJECT = A (JSON) object.

  • ARRAY = A (JSON) array.

  • STRING = A (JSON) string.

  • NUMBER = A (JSON) number.

  • BOOLEAN = A (JSON) boolean.

  • NULL = A (JSON) null.



Search Academy for more details about: @data.type.

query Parameters
data
object

The data to check the type for.

Responses

@data.isType

Checks whether the given data is of given type. Valid type keys are:


  • OBJECT = A (JSON) object.

  • ARRAY = A (JSON) array.

  • STRING = A (JSON) string.

  • NUMBER = A (JSON) number.

  • BOOLEAN = A (JSON) boolean.

  • NULL = A (JSON) null.



Search Academy for more details about: @data.isType.

query Parameters
data
object

The data to check for the type.

type
string

The type string to check for.

Responses

@data.isArray

Checks if given data is an array.

Search Academy for more details about: @data.isArray.

query Parameters
data
object

The data to check for.

Responses

@data.isBoolean

Checks if given data is a boolean.

Search Academy for more details about: @data.isBoolean.

query Parameters
data
object

The data to check for.

Responses

@data.isNumber

Checks if given data is a number.

Search Academy for more details about: @data.isNumber.

query Parameters
data
object

The data to check for.

Responses

@data.isObject

Checks if given data is an object.

Search Academy for more details about: @data.isObject.

query Parameters
data
object

The data to check for.

Responses

@data.isString

Checks if given data is a string.

Search Academy for more details about: @data.isString.

query Parameters
data
object

The data to check for.

Responses

@data.isNull

query Parameters
data
object

The data to check for.

Responses

@data.load

Tries to auto-convert the given object to a data object (= map or list)
and loads it into memory in order to be able to
access it inside the pipeline.

Search Academy for more details about: @data.load.

query Parameters
content
object

The content to be loaded as data into memory.

Responses

@date

@date.now

Returns the current time at server side formatted using the preferred zone and locale of the currently logged-in user.

Search Academy for more details about: @date.now.

Responses

@date.nowIso8601

Returns the current time at server side formatted using the ISO8601 time format.

Search Academy for more details about: @date.nowIso8601.

Responses

@date.now

Returns the current time at server side formatted using the preferred zone and locale of the currently logged-in user.

Search Academy for more details about: @date.now.

query Parameters
format
string

The format pattern like dd.MM.YY HH:mm:ss for example.

Responses

@date.now

Returns the current time for the given zone and formats it using the default format of the given locale.

Search Academy for more details about: @date.now.

query Parameters
zoneId
string

The zoneId to be used. See http://www.iana.org/time-zones for official reference of these names.

locale
string

The locale to be used.

Responses

@date.guessAndFormat

Tries to guess the given date time string format, converts it internally to a date-time object
and formats it finally to a string output using the given output format pattern.

Search Academy for more details about: @date.guessAndFormat.

query Parameters
dateTimeString
string

The date-time string as input.

outputFormat
string

Responses

@date.format

Converts a given date string using the given inputFormat and converts it to the given outputFormat.

Search Academy for more details about: @date.format.

query Parameters
inputDate
string

The input date string.

inputFormat
string
outputFormat
string

Responses

@date.format

Converts a given ISO-8061 date string to a different format and returns it.
For example: An input date of "2030-01-10T20:00:00Z" with format of "dd.MM.yyyy" would result in "01.10.2030".

Search Academy for more details about: @date.format.

query Parameters
iso8601Date
string

The ISO-8061 formatted date to convert.

format

Responses

@date.format

Converts a given unix timestamp to a formatted date time string and returns it.

Search Academy for more details about: @date.format.

query Parameters
timestamp
long

The unix timestamp in millis to format.

format

Responses

@date.year

Tries to guess and extract the year of the given date string. This is not always working 100% since
the date formats can vary a lot.

Search Academy for more details about: @date.year.

query Parameters
dateString
string

A date string like 31.02.2012, 31.02.12, 2012/01/31, 31-01-12, 31-01-2012, 2012-01-31 23:59:59,
or 2001-07-04T12:08:56.235-0700.

Responses

@date.timestamp

Returns the current unix timestamp in millis.

Search Academy for more details about: @date.timestamp.

Responses

@date.isExpired

Returns true, if the given amount of time is already expired.
Lets see this example: Given is a starttime of 1st January, 2020 an endttime of
11th January, 2020 and an expiredInPercents of 0,7 (70%). In this case the method would return
true on 9th of January, 2020 but false on 3rd of January, 2020.
Also see {@link DateTimeUtil#isExpired(Instant, Instant, float)}.

Search Academy for more details about: @date.isExpired.

query Parameters
iso8601Start
object

The start time for the time range in ISO-8601 format.

iso8601End
object

The endtime for the time range in ISO-8601 format.

expiredInPercents
float

The percentage as float (e.g. 0,9 = 90%), the range is already expired.

Responses

@date.isExpired

Returns true, if the given amount of time is already expired.
Lets see this example: Given is a starttime of 1st January, 2020 an endttime of
11th January, 2020 and an expiredInPercents of 0,7 (70%). In this case the method would return
true on 9th of January, 2020 but false on 3rd of January, 2020.
Also see {@link DateTimeUtil#isExpired(Instant, Instant, float)}.

Search Academy for more details about: @date.isExpired.

query Parameters
iso8601Start
object

The start time for the time range in ISO-8601 format.

iso8601End
object

The endtime for the time range in ISO-8601 format.

expiredInPercents
float

The percentage as float (e.g. 0,9 = 90%), the range is already expired.

currentDate
object

The current date, the calculation must use.

Responses

@date.isOverdue

Returns true in case if dueDate > currentDate.

Search Academy for more details about: @date.isOverdue.

query Parameters
dueDate
object

The due after overdue is true.

currentDate
object

The current date.

Responses

@date.isOverdue

Returns true in case if dueDate > currentDate.
For currentDate the current date and time from the system is used.

Search Academy for more details about: @date.isOverdue.

query Parameters
dueDate
object

The due after overdue is true.

Responses

@date.parseToInstant

Parses the given date time object to an instant date time object.

Search Academy for more details about: @date.parseToInstant.

query Parameters
dateTime
object

The date time object to be parsed.

Responses

@date.beginOfYear

Returns the epoch timestamp in millis of the beginning of the year relative to current year
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current year,
you would set yearOffset=0. To get the beginning timestamp of
last year, you would set yearOffset=-1. To get the beginning timestamp of
next year, you would set yearOffset=1.

Search Academy for more details about: @date.beginOfYear.

query Parameters
yearOffset
int

The years to be added (positive value) or subtracted (negative value) from current year.

Responses

@date.beginOfYear

Returns the epoch timestamp in millis of the beginning of the year relative to given timestamp
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current year,
you would set timestamp=null, yearOffset=0. To get the beginning timestamp of
last year, you would set timestamp=null, yearOffset=-1. To get the beginning timestamp of
next year, you would set timestamp=null, yearOffset=1.

Search Academy for more details about: @date.beginOfYear.

query Parameters
timestamp
long

The epoch millis to calculate the beginning of the year from.
If null, the current timestamp will be used.

yearOffset
int

The years to be added (positive value) or subtracted (negative value) from given year.

Responses

@date.beginOfMonth

Returns the epoch timestamp in millis of the beginning of the month relative to current month
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current month,
you would set monthOffset=0. To get the beginning timestamp of
last month, you would set monthOffset=-1. To get the beginning timestamp of
next month, you would set monthOffset=1.

Search Academy for more details about: @date.beginOfMonth.

query Parameters
monthOffset
int

The months to be added (positive value) or subtracted (negative value) from current month.

Responses

@date.beginOfMonth

Returns the epoch timestamp in millis of the beginning of the month relative to given timestamp
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current month,
you would set timestamp=null, monthOffset=0. To get the beginning timestamp of
last month, you would set timestamp=null, monthOffset=-1. To get the beginning timestamp of
next month, you would set timestamp=null, monthOffset=1.

Search Academy for more details about: @date.beginOfMonth.

query Parameters
timestamp
long

The epoch millis to calculate the beginning of the month from.
If null, the current timestamp will be used.

monthOffset
int

The months to be added (positive value) or subtracted (negative value) from given month.

Responses

@date.beginOfWeek

Returns the epoch timestamp in millis of the beginning of the week relative to current week
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current week with Monday as start day,
you would set weekStartDay=1, weekOffset=0. To get the beginning timestamp of
last week, you would set weekStartDay=1, weekOffset=-1. To get the beginning timestamp of
next week, you would set weekStartDay=1, weekOffset=1.

Search Academy for more details about: @date.beginOfWeek.

query Parameters
weekStartDay
integer

The start day of the week as int from Monday(1) to Sunday(7).
If null or negative, Monday(1) is used.

weekOffset
int

The weeks to be added (positive value) or subtracted (negative value) from current week.

Responses

@date.beginOfWeek

Returns the epoch timestamp in millis of the beginning of the week relative to given timestamp
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current week with Monday as start day,
you would set timestamp=null, weekStartDay=null, weekOffset=0. To get the beginning timestamp of
last week, you would set timestamp=null, weekStartDay=null, weekOffset=-1. To get the beginning timestamp of
next week, you would set timestamp=null, weekStartDay=null, weekOffset=1.

Search Academy for more details about: @date.beginOfWeek.

query Parameters
timestamp
long

The epoch millis to calculate the beginning of the week from.
If null, the current timestamp will be used.

weekStartDay
integer

The start day of the week as int from Monday(1) to Sunday(7).
If null or negative, Monday(1) is used.

weekOffset
int

The weeks to be added (positive value) or subtracted (negative value) from given week.
If you would like to know the start date of the week before for example,
you would set this to -1. And for two weeks before you would set it to -2, aso.
And to detect the beginning of the week of the given timestamp, you would set it to 0.

Responses

@date.beginOfDay

Returns the epoch timestamp in millis of the beginning of the day relative to current day
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current day,
you would set dayOffset=0. To get the beginning timestamp of
yesterday, you would set dayOffset=-1. To get the beginning timestamp of
tomorrow, you would set dayOffset=1.

Search Academy for more details about: @date.beginOfDay.

query Parameters
dayOffset
int

The days to be added (positive value) or subtracted (negative value) from current day.

Responses

@date.beginOfDay

Returns the epoch timestamp in millis of the beginning of the day relative to given timestamp
with respect of the user's preference for time zone.
For example to get the timestamp of the beginning of the current day,
you would set timestamp=null, dayOffset=0. To get the beginning timestamp of
yesterday, you would set timestamp=null, dayOffset=-1. To get the beginning timestamp of
tomorrow, you would set timestamp=null, dayOffset=1.

Search Academy for more details about: @date.beginOfDay.

query Parameters
timestamp
long

The epoch millis to calculate the beginning of the day from.
If null, the current timestamp will be used.

dayOffset
int

The days to be added (positive value) or subtracted (negative value) from given day.

Responses

@date.minusMillis

Subtracts the given time from given timestamp.

Search Academy for more details about: @date.minusMillis.

query Parameters
timestamp
long

The base timestamp in millis.

millis
long

The millis to subtract (will be converted to millis).

Responses

@date.minusSeconds

Subtracts the given time from given timestamp.

Search Academy for more details about: @date.minusSeconds.

query Parameters
timestamp
long

The base timestamp in millis.

seconds
long

The seconds to subtract (will be converted to millis).

Responses

@date.minusMinutes

Subtracts the given time from given timestamp.

Search Academy for more details about: @date.minusMinutes.

query Parameters
timestamp
long

The base timestamp in millis.

minutes
int

The minutes to subtract (will be converted to millis).

Responses

@date.minusHours

Subtracts the given time from given timestamp.

Search Academy for more details about: @date.minusHours.

query Parameters
timestamp
long

The base timestamp in millis.

hours
int

The hours to subtract (will be converted to millis).

Responses

@date.minusDays

Subtracts the given time from given timestamp.

Search Academy for more details about: @date.minusDays.

query Parameters
timestamp
long

The base timestamp in millis.

days
int

The days to subtract (will be converted to millis).

Responses

@date.minusWeeks

Subtracts the given time from given timestamp.

Search Academy for more details about: @date.minusWeeks.

query Parameters
timestamp
long

The base timestamp in millis.

weeks
int

The weeks to subtract (will be converted to millis).

Responses

@date.minusYears

Subtracts the given time from given timestamp.

Search Academy for more details about: @date.minusYears.

query Parameters
timestamp
long

The base timestamp in millis.

years
int

The years to subtract (will be converted to millis).

Responses

@date.plusMillis

Adds the given time to given timestamp.

Search Academy for more details about: @date.plusMillis.

query Parameters
timestamp
long

The base timestamp in millis.

millis
long

The millis to add (will be converted to millis).

Responses

@date.plusSeconds

Adds the given time to given timestamp.

Search Academy for more details about: @date.plusSeconds.

query Parameters
timestamp
long

The base timestamp in millis.

seconds
long

The seconds to add (will be converted to millis).

Responses

@date.plusMinutes

Adds the given time to given timestamp.

Search Academy for more details about: @date.plusMinutes.

query Parameters
timestamp
long

The base timestamp in millis.

minutes
int

The minutes to add (will be converted to millis).

Responses

@date.plusHours

Adds the given time to given timestamp.

Search Academy for more details about: @date.plusHours.

query Parameters
timestamp
long

The base timestamp in millis.

hours
int

The hours to add (will be converted to millis).

Responses

@date.plusDays

Adds the given time to given timestamp.

Search Academy for more details about: @date.plusDays.

query Parameters
timestamp
long

The base timestamp in millis.

days
int

The days to add (will be converted to millis).

Responses

@date.plusWeeks

Adds the given time to given timestamp.

Search Academy for more details about: @date.plusWeeks.

query Parameters
timestamp
long

The base timestamp in millis.

weeks
int

The weeks to subtract (will be converted to millis).

Responses

@date.plusYears

Adds the given time to given timestamp.

Search Academy for more details about: @date.plusYears.

query Parameters
timestamp
long

The base timestamp in millis.

years
int

The years to add (will be converted to millis).

Responses

@function

@function.run

Executes the FaaS function with given name and passes the given args to it.

Search Academy for more details about: @function.run.

query Parameters
name
string

The name of the function to run.

args
object

The optional args to be passed to the function or null.

Responses

@hash

@hash.sha1

Creates the SHA-1 hash from given input and returns it as hex string.

Search Academy for more details about: @hash.sha1.

query Parameters
input
object

The input data to create a hash from. Can be a string, a byte array or a collection of strings.

Responses

@hash.sha1Concat

Concatenates the given list of strings using the given separator and then calculates
the hash SHA-1 of the concatenated string.

Search Academy for more details about: @hash.sha1Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

text
string

The text (list) to concat into a string.

Responses

@hash.sha1Concat

Concatenates the given list of strings using the given separator and then calculates
the hash SHA-1 of the concatenated string.

Search Academy for more details about: @hash.sha1Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

textList
collection

The text (list) to concat into a string.

Responses

@hash.sha256

Creates the SHA-256 hash from given input and returns it as hex string.

Search Academy for more details about: @hash.sha256.

query Parameters
input
object

The input data to create a hash from. Can be a string, a byte array or a collection of strings.

Responses

@hash.sha256Concat

Concatenates the given list of strings using the given separator and then calculates
the hash SHA-256 of the concatenated string.

Search Academy for more details about: @hash.sha256Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

text
string

The text (list) to concat into a string.

Responses

@hash.sha256Concat

Concatenates the given list of strings using the given separator and then calculates
the hash SHA-256 of the concatenated string.

Search Academy for more details about: @hash.sha256Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

textList
collection

The text (list) to concat into a string.

Responses

@hash.md5

Creates the MD5 hash from given input and returns it as hex string.

Search Academy for more details about: @hash.md5.

query Parameters
input
object

The input data to create a hash from. Can be a string, a byte array or a collection of strings.

Responses

@hash.md5Concat

Concatenates the given list of strings using the given separator and then calculates
the hash MD5 of the concatenated string.

Search Academy for more details about: @hash.md5Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

text
string

The text (list) to concat into a string.

Responses

@hash.md5Concat

Concatenates the given list of strings using the given separator and then calculates
the hash MD5 of the concatenated string.

Search Academy for more details about: @hash.md5Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

textList
collection

The text (list) to concat into a string.

Responses

@hash.sha512

Creates the SHA-512 hash from given input and returns it as hex string.

Search Academy for more details about: @hash.sha512.

query Parameters
input
object

The input data to create a hash from. Can be a string, a byte array or a collection of strings.

Responses

@hash.sha512Concat

Concatenates the given list of strings using the given separator and then calculates
the hash SHA-512 of the concatenated string.

Search Academy for more details about: @hash.sha512Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

text
string

The text (list) to concat into a string.

Responses

@hash.sha512Concat

Concatenates the given list of strings using the given separator and then calculates
the hash SHA-512 of the concatenated string.

Search Academy for more details about: @hash.sha512Concat.

query Parameters
separator
string

The separator to be used to concat the string. If null, empty string will be used.

textList
collection

The text (list) to concat into a string.

Responses

@i18n

@i18n.message

Returns the message for given app, context, key and locale.

Search Academy for more details about: @i18n.message.

query Parameters
app
string

The app to lookup the i18n messages inside. If null or empty, app "common" will be used.

context
string

The context to be used. If null or empty, "default" will be used.

key
string

The message key.

locale
string

The locale to be used. Must be a string of format language-country-variant,
whereas country and variant are optional. For example: de-DE.

Responses

@i18n.message

Returns the translated message for given i18n uri string such as $uri:i18n:io.pipeforce.myapp/default/confirm.

Search Academy for more details about: @i18n.message.

query Parameters
i18nUri
string

The uri string such as for example: $uri:i18n:io.pipeforce.myapp/default/confirm

locale
string

The locale to be used. Must be a string of format language-country-variant,
whereas country and variant are optional. For example: de-DE.

Responses

@iam

@iam.userByUuid

Returns the user by given uuid or null in case no such user exists.

Search Academy for more details about: @iam.userByUuid.

query Parameters
userUuid
string

The uuid of the user.

Responses

@iam.userByUsername

Returns the user by given username or null in case no such user exists.

Search Academy for more details about: @iam.userByUsername.

query Parameters
username
string

The username of the user.

Responses

@iam.userByEmail

Returns the user by given email or null in case no such user exists.

Search Academy for more details about: @iam.userByEmail.

query Parameters
email
string

The email of the user.

Responses

@instance

@instance.env

Returns the value of the environment variable with given name.
Note that access to environment variables containing one of these substrings (case-insensitive) in the name
will be accessibly only by systemuser:


  • AUTH

  • BEARER

  • CREDENTIAL

  • PASS

  • SECRET

  • SECURE

  • SEED

  • TOKEN



Search Academy for more details about: @instance.env.

query Parameters
name
string

The name of the environment variable.

Responses

@instance.domain

Returns the domain, this hub instance is currently running in. For example: pipeforce.net

Search Academy for more details about: @instance.domain.

Responses

@instance.namespace

Returns the namespace, this hub instance is currently running in. For example: latest

Search Academy for more details about: @instance.namespace.

Responses

@instance.url

Returns the full url for a given service in the current namespace. For example:
a call with 'workflow' could return 'http://workflow-myamespace.pipeforce.net' depending
on the namespace and domain configured for this instance.

Search Academy for more details about: @instance.url.

query Parameters
serviceName
string

The PIPEFORCE service name.

Responses

@instance.url

Returns the base url of the instance. For example: https://acme.pipeforce.net.

Search Academy for more details about: @instance.url.

Responses

@instance.profiles

The active profiles this instance is tagged with to run as.

Search Academy for more details about: @instance.profiles.

Responses

@instance.hasProfile

Checks if this instance contains at least one profile from the given list.

Search Academy for more details about: @instance.hasProfile.

query Parameters
profiles
object

An array or comma separated list of profiles to check.

Responses

@instance.stage

Returns the stage the instance is running in.

Search Academy for more details about: @instance.stage.

Responses

@instance.version

Returns the version number of this instance.

Search Academy for more details about: @instance.version.

Responses

@instance.build

Returns the build ID of this instance.

Search Academy for more details about: @instance.build.

Responses

@instance.edition

Responses

@instance.storage

Returns the storage info reserved for this instance (hub service).

Search Academy for more details about: @instance.storage.

Responses

@instance.tag

Returns the full build tag of this instance.

Search Academy for more details about: @instance.tag.

Responses

@instance.uptime

Returns the uptime of this instance. Note: Since PIPEFORCE is a clustered environment,
update of a single hub service and the cluster could differ.

Search Academy for more details about: @instance.uptime.

Responses

@instance.defaultImageRepo

Prefixes the given image by the path of the default container image repository.
When running inside GKE this is typically: gcr.io/pipeforce/[image]

Search Academy for more details about: @instance.defaultImageRepo.

query Parameters
image
string

The image name to be prefixed by the repo.

Responses

@json

@json.load

Loads the given source and converts it into a JSONful data object.

Search Academy for more details about: @json.load.

query Parameters
source
object

The JSON source to load.

Responses

@json.path

Applies a given JsonPath query to the given json object and returns the result.
Learn more about the JsonPath syntax: https://goessner.net/articles/JsonPath/

Search Academy for more details about: @json.path.

query Parameters
json
object

The JSON object to apply the query to.

query
string

The query to be applied.

Responses

@json.stringify

Converts the given JSON or map object into a JSON string.

Search Academy for more details about: @json.stringify.

query Parameters
json
object

The JSON object to be converted to a string.

Responses

@json.object

Creates a new, empty JSON object (as map) and returns it.

Search Academy for more details about: @json.object.

Responses

@json.array

Creates a new, empty JSON array (as list) and returns it.

Search Academy for more details about: @json.array.

Responses

@list

@list.first

Returns the first element in list.

Search Academy for more details about: @list.first.

query Parameters
value
object

Any supported list object.

Responses

@list.last

Returns the last element in list.

Search Academy for more details about: @list.last.

query Parameters
value
object

Any supported list object.

Responses

@list.size

Returns the size of the given list.
DEPRECATED. Use ''@data.size(...)'' instead.

Search Academy for more details about: @list.size.

query Parameters
list
object

The list.

Responses

@list.empty

Checks if given list is null or empty.
DEPRECATED. Use ''@data.isEmpty(...)'' instead.

Search Academy for more details about: @list.empty.

query Parameters
list
object

The list to check.

Responses

@list.sublist

Utility to get a subset from a list using a list expression. Examples:


  • last - Returns the last element in the list.

  • first - Returns the first element in the list.

  • START:END - Returns all elements as a sublist from START (inclusive) up to the
    given END (inclusive).

  • INDEX: - Returns all elements as a sublist from INDEX (inclusive) up to the
    end of the list.

  • :INDEX - Returns all elements as a sublist from 0 up to INDEX (inclusive).



Search Academy for more details about: @list.sublist.

query Parameters
value
object

Any list object.

expression
string

The list expression.

Responses

@list.add

Appends the given element to the end of the given list.
This method is useful in case the list implementation is not clear since
this method can detect it (for example whether it is a collection or a JSON array).
By default doesn't add null items.

Search Academy for more details about: @list.add.

query Parameters
list
object

The list to append to.

element
object

The element to append.

Responses

@list.add

Appends the given element to the end of the given list.
This method is useful in case the list implementation is not clear since
this method can detect it (for example whether it is a collection or a JSON array).

Search Academy for more details about: @list.add.

query Parameters
list
object

The list to append to.

element
object

The element to append.

ignoreNulls
boolean

If true, null items will not be added.

Responses

@list.remove

Removes the entry from the given list and shifts any subsequent element to the left.

Search Academy for more details about: @list.remove.

query Parameters
list
object

The list to remove the element from.

index
int

The index of the item to remove.

Responses

@list.contains

Searches the given list for the given needle.

Search Academy for more details about: @list.contains.

query Parameters
list
object

The list to search in.

needles
object

The items to search for. Can also be a list of items.

Responses

@list.create

Responses

@list.createNulled

Creates a new list of given size will all entries set to null.

Search Academy for more details about: @list.createNulled.

query Parameters
size
int

The number of items to initialize the list with.

Responses

@list.create

query Parameters
items
object

The items to be set on the new list. Can be string, a collection or JSON. If it is a string
and contains a comma, it will be split into a list by comma.

Responses

@list.copy

Creates a flat copy of given list and returns it as new list.

Search Academy for more details about: @list.copy.

query Parameters
list
collection

The list to create a flat copy from.

Responses

@path

@path.join

Concats all given items to a single path. Also see {@link PathUtil#path(Object...)}.

Search Academy for more details about: @path.join.

query Parameters
pathItems
object

The path items to join as list.

Responses

@path.extension

Returns the extension of a given filename (path).

Search Academy for more details about: @path.extension.

query Parameters
path
string

The path string.

Responses

@path.basename

Returns the base name of a file without the extension. Also strips-off any
ID form the filename.
For example: "/folder/invoice.pdf" would return "invoice" and
"/folder/invoice_ID-3fgh343.pdf" would return "invoice"

Search Academy for more details about: @path.basename.

query Parameters
path
string

The path string.

Responses

@property

@property.value

Returns the property value by given key from the property store.

Search Academy for more details about: @property.value.

query Parameters
key
string

The property key

Responses

@property.values

Returns the values of all properties matching the given key pattern.

Search Academy for more details about: @property.values.

query Parameters
pattern
string

The property key pattern to match.

Responses

@property.updateValue

Updates the value of a property under given key.

Search Academy for more details about: @property.updateValue.

query Parameters
key
string

The key of the property to update.

value
object

The value of the property to update.

Responses

@property.get

Returns the property with given key as object.

Search Academy for more details about: @property.get.

query Parameters
key
string

The property key.

Responses

@property.lazy

Returns the value of the property as a {@link LazyUriMap} map in case the result
is a JSON document or its fragment. If uri fragment references leaf, primitive value is returned.
In all other cases an exception is thrown.
Fragment part of uri is evaluated as a SPEL against property value.

Search Academy for more details about: @property.lazy.

query Parameters
key
string

The property key with optional fragment reference in form 'global/pathsegment1/pathsegment...#fragment'

Responses

@resolve

@resolve.uri

Resolves the given uri to its object representation. Supported uri schemes:


  • uri:user:Resolves to an user object.

  • uri:pipeline:Resolves the given path, pointing to a persisted pipeline, executes it
    and returns the body result.

  • uri:property: Resolves the given property key path and returns it from the storage.



Search Academy for more details about: @resolve.uri.

query Parameters
uri
string

The uri to be resolved.

Responses

@script

@script.groovy

Evaluates the given groovy script.

Search Academy for more details about: @script.groovy.

query Parameters
script
string

The script to execute

args
object

The variables to be passed to the script as args.

Responses

@script.groovy

Evaluates the given groovy script.

Search Academy for more details about: @script.groovy.

query Parameters
script
string

The script to execute

Responses

@text

@text.upperCase

Converts the given text value to upper case.

Search Academy for more details about: @text.upperCase.

query Parameters
text
object

The text to convert.

Responses

@text.lastIndexOf

Returns the index of last occurrence of needle in the given text.

Search Academy for more details about: @text.lastIndexOf.

query Parameters
text
object

The text to search for occurrence.

needle
object

The text to search for.

Responses

@text.lastIndexOf

Returns the index of last occurrence of needle in the given text.

Search Academy for more details about: @text.lastIndexOf.

query Parameters
text
object

The text to search for occurrence.

needle
object

The text to search for.

offset
int

The index to start search from.

Responses

@text.indexOf

Returns the index of the first occurrence of needle in the given text.

Search Academy for more details about: @text.indexOf.

query Parameters
text
object

The text to search for occurrence.

needle
object

The text to search for.

Responses

@text.indexOf

Returns the index of the first occurrence of needle in the given text.

Search Academy for more details about: @text.indexOf.

query Parameters
text
object

The text to search for occurrence.

needle
object

The text to search for.

offset
int

The index to start search from.

Responses

@text.prefix

Returns the part from the beginning of the given text up to the stop word.
For example "Foo Bar" with stop word of " " would return "Foo" as prefix.

Search Academy for more details about: @text.prefix.

query Parameters
text
object

The text.

stop
object

The stop word.

Responses

@text.suffix

Returns the part from the stop word of the given text up to the end of the word.
For example "Foo Bar" with stop word of " " would return "Bar" as suffix.

Search Academy for more details about: @text.suffix.

query Parameters
text
object

The text.

stop
object

The stop word.

Responses

@text.lowerCase

Converts the given text value to lower case.

Search Academy for more details about: @text.lowerCase.

query Parameters
text
object

The text.

Responses

@text.isEmpty

Returns true if given text is empty or null.

Search Academy for more details about: @text.isEmpty.

query Parameters
text
object

The text.

Responses

@text.shorten

Shorts the given string and adds ... at the end.

Search Academy for more details about: @text.shorten.

query Parameters
text
object

The text to shorten.

length
int

The length.

Responses

@text.length

Returns the len of the given text. In case the text is null, 0 is returned.

Search Academy for more details about: @text.length.

query Parameters
text
object

The text.

Responses

@text.contains

Checks whether given text contains at least one of given needle texts, ignoring case.
Also value and text can be null.

Search Academy for more details about: @text.contains.

query Parameters
text
object

The text to search in.

needles
string

A comma separated list of needles to search inside text.

Responses

@text.lang

Tries to detect the language of given text.

Search Academy for more details about: @text.lang.

query Parameters
text
object

The text to detect the language for.

Responses

@text.random

Creates a random alphanumeric string of given size. Characters will be used from
a set of Latin alphabetic characters (a-z, A-Z) and the digits 0-9. No special chars.

Search Academy for more details about: @text.random.

query Parameters
size
int

The length of the random string.

Responses

@text.uuid

Creates a new uuid with 32 digits and returns it as hexadecimal string.
For example: 66a637cc-19fc-4145-98c5-1a1b0bf010be
See RFC for specification: https://datatracker.ietf.org/doc/html/rfc4122

Search Academy for more details about: @text.uuid.

Responses

@text.toHtml

Converts the given text to an HTML fragment. Replaces &, gt and lt signs, keeps line breaks
and converts links to href elements.

Search Academy for more details about: @text.toHtml.

query Parameters
text
object

The text to convert to HTML.

Responses

@text.append

Appends the given text to the given base text.
If one of the parts is null or empty, returns the other part only, without "null" concatenation.

Search Academy for more details about: @text.append.

query Parameters
basetext
object

The base text to append to.

text
object

The text to append.

Responses

@text.concat

Concatenates the given list of objects using the given separator.
Ignores null items.

Search Academy for more details about: @text.concat.

query Parameters
separator
string

The separator.

collection
object

The collection of items to concat.

Responses

@text.concat

Treats the given items as a list of texts and concats these items using the given separator.
Ignores null items.

Search Academy for more details about: @text.concat.

query Parameters
separator
string

The separator between the items.

items
object

The collection of items.

Responses

@text.commajoin

Same as #concat(separator, items) but with comma as default separator.

Search Academy for more details about: @text.commajoin.

query Parameters
collection
object

The collection of items to concatenate.

Responses

@text.format

Formats the given text using the given pattern and input args.

Search Academy for more details about: @text.format.

query Parameters
pattern
string

The format pattern to apply. Must be of the Formatter Syntax of Java.
See: https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html

args
object

The args to be passed to the format pattern.

Responses

@text.leftPad

Left pad a text with spaces (' ').
The text is padded to the size of size.
StringUtils.leftPad(null, *) = null
StringUtils.leftPad("", 3) = " "
StringUtils.leftPad("bat", 3) = "bat"
StringUtils.leftPad("bat", 5) = " bat"
StringUtils.leftPad("bat", 1) = "bat"
StringUtils.leftPad("bat", -1) = "bat"

Search Academy for more details about: @text.leftPad.

query Parameters
text
string

The text to add the padding.

size
int

The size to pad the text to.

Responses

@text.leftPad

Left pad a text with a specified character.
Pad to a size of size.
StringUtils.leftPad(null, *, *) = null
StringUtils.leftPad("", 3, 'z') = "zzz"
StringUtils.leftPad("bat", 3, 'z') = "bat"
StringUtils.leftPad("bat", 5, 'z') = "zzbat"
StringUtils.leftPad("bat", 1, 'z') = "bat"
StringUtils.leftPad("bat", -1, 'z') = "bat"

Search Academy for more details about: @text.leftPad.

query Parameters
text
string

The text to add the padding.

size
int

The size to pad the text to.

padChar
char

The char to be used for padding.

Responses

@text.rightPad

Right pad a text with spaces (' ').
The test is padded to the size of size.
StringUtils.rightPad(null, *) = null
StringUtils.rightPad("", 3) = " "
StringUtils.rightPad("bat", 3) = "bat"
StringUtils.rightPad("bat", 5) = "bat "
StringUtils.rightPad("bat", 1) = "bat"
StringUtils.rightPad("bat", -1) = "bat"

Search Academy for more details about: @text.rightPad.

query Parameters
text
string

The text to add the padding.

size
int

The size to pad the text to.

Responses

@text.rightPad

Right pad a text with a specified character.
The text is padded to the size of size.
StringUtils.rightPad(null, *, *) = null
StringUtils.rightPad("", 3, 'z') = "zzz"
StringUtils.rightPad("bat", 3, 'z') = "bat"
StringUtils.rightPad("bat", 5, 'z') = "batzz"
StringUtils.rightPad("bat", 1, 'z') = "bat"
StringUtils.rightPad("bat", -1, 'z') = "bat"

Search Academy for more details about: @text.rightPad.

query Parameters
text
string

The text to add the padding.

size
int

The size to pad the text to.

padChar
char

The char to be used for padding.

Responses

@text.concatAndFormat

Similar to #concat(text1, Object...) but additionally applies the given PEL expression on
each list entry before it gets concatenated. This is useful for example to convert each entry in
the list before adding it to the resulting string. For example to remove whitespaces on each entry.

Search Academy for more details about: @text.concatAndFormat.

query Parameters
separator
string

The separator.

collection
object

The collection of items to concatenate.

pel
string

The pipeline expression without wrapping #{ and }

Responses

@text.startsWith

Tests the given text whether it starts with given prefix.

Search Academy for more details about: @text.startsWith.

query Parameters
text
string

The text

prefix
string

The prefix to test

Responses

@text.endsWith

Tests the given text whether it end with given suffix.

Search Academy for more details about: @text.endsWith.

query Parameters
text
string

The text

suffix
string

The prefix to test

Responses

@text.replaceAll

Replace all occurrences of a needle text with replacement text.

Search Academy for more details about: @text.replaceAll.

query Parameters
text
object

The text to apply replacements.

needle
string

The needle text matching all replacement sources.

replacement
string

The string to be substituted for each match.

Responses

@text.substring

Returns a substring from the given text,
starting at beginIndex up to the end of the text.

Search Academy for more details about: @text.substring.

query Parameters
text
object

The text to return substring from.

beginIndex
int

The 0-based index to start the substring (inclusive).

Responses

@text.substring

Returns a substring from the given text,
starting at beginIndex up to endIndex.

Search Academy for more details about: @text.substring.

query Parameters
text
object

The text to return substring from.

beginIndex
int

The 0-based index to start the substring (inclusive).

endIndex
int

The 0-based index to end the substring (exclusive).

Responses

@text.trim

Removes any leading and ending whitespaces.

Search Academy for more details about: @text.trim.

query Parameters
text
object

The text to remove any whitespaces from.

Responses

@text.isAllEmpty

Returns true, if all of the given string values is empty: Is null, contains no characters or whitespaces only.
If at least one of it is not empty, returns false.

Search Academy for more details about: @text.isAllEmpty.

query Parameters
text
object

The list of text items to check.

Responses

@text.toAlphaNumeric

Converts the given text string into a string which contains only the
chars 0-9,a-z,A-Z and . The conversion rule is:
Umlauts will become their non-umlaut representation. For example ä
becomes ae.
Any other special characters become underscore. For example ? becomes
.

Search Academy for more details about: @text.toAlphaNumeric.

query Parameters
text
object

The text to convert.

Responses

@text.firstCharUpper

Makes the first char of the given text to upper case.

Search Academy for more details about: @text.firstCharUpper.

query Parameters
text
object

The text to change.

Responses

@text.firstCharLower

Makes the first char of the given text to lower case.

Search Academy for more details about: @text.firstCharLower.

query Parameters
text
object

The text to change.

Responses

@text.split

Splits the given text into a list of items by given split token.

Search Academy for more details about: @text.split.

query Parameters
text
object

The text to split to tokens.

token
object

The token to split the text with.

Responses

@text.replaceCharAt

Replaces the character at given position in the text and returns the new text.

Search Academy for more details about: @text.replaceCharAt.

query Parameters
text
string

The text to replace the char on.

pos
int

The position in the text to replace the char.
If negative or >= text length, the original text is returned without any replacement.

c
char

The new character.

Responses

@text.matches

Searches text for first regexp match.

Search Academy for more details about: @text.matches.

query Parameters
text
string

to search for matches

regexp
string

regular expression to use

Responses

@text.escapeCsvValue

Returns a String value for a CSV column enclosed in double quotes, if required.
If the value contains a comma, newline or double quote, then the String value is returned enclosed in double quotes.
Any double quote characters in the value are escaped with another double quote.
If the value does not contain a comma, newline or double quote, then the String value is returned unchanged.

Search Academy for more details about: @text.escapeCsvValue.

query Parameters
value
string

input text to escape

Responses

@uri

@uri.resolve

Note: This function is deprecated. Use '@resolve.uri' instead.

Search Academy for more details about: @uri.resolve.

query Parameters
uri
string

The uri to be resolved.

Responses

@user

@user.username

Returns the username of the currently logged-in user.

Search Academy for more details about: @user.username.

Responses

@user.uuid

Returns the uuid of the logged-in user.

Search Academy for more details about: @user.uuid.

Responses

@user.hasPermission

Returns true in case the logged-in user has at least one of the listed permission.

Search Academy for more details about: @user.hasPermission.

query Parameters
permissionKeys
string

A list of permission keys (roles) to check for.

Responses

@user.displayName

Returns the default display name of the logged-in user which is the first non-empty value of:
firstName lastName, email, uuid. Note: Doesn't return the username for security reasons.

Search Academy for more details about: @user.displayName.

Responses

@user.emailAndDisplayName

Returns the email and default display name of the given user object or empty string if
no such value exists.

Search Academy for more details about: @user.emailAndDisplayName.

query Parameters
object
object

The user object to extract email and displayName from.

Responses

@user.emailAndDisplayName

Returns the email and default display name of the currently logged-in user object or empty string if
no such value exists.

Search Academy for more details about: @user.emailAndDisplayName.

Responses

@user.displayName

Tries to dynamically create a meaningful display name out of the given user object.
This user object can be of different format. The method tries to
automatically detect it and creates the displayName from it. If this
was not possible for some reason, an empty string is returned.

Search Academy for more details about: @user.displayName.

query Parameters
object
object

The user object.

Responses

@user.email

Returns the primary email address of the currently logged-in user.

Search Academy for more details about: @user.email.

Responses

@user.email

Tries to detect the email from the given object.

Search Academy for more details about: @user.email.

query Parameters
object
object

An object like a user or a JSON containing an email property.

Responses

@user.locale

Returns the locale of the logged in user or null in case not set or could not be determined.

Search Academy for more details about: @user.locale.

Responses

@user.firstName

Returns the first name of the logged in user.

Search Academy for more details about: @user.firstName.

Responses

@user.lastName

Returns the last name of the logged in user

Search Academy for more details about: @user.lastName.

Responses

@user.loggedIn

Returns true in case the current user is authenticated (logged-in).

Search Academy for more details about: @user.loggedIn.

Responses

@user.zone

Returns the preferred zoneId of the currently logged-in user or null in case none was set.
The preferred zone is usually set in the users profile or by the client in use (e.g. the browser).
See {@link ZoneId#getAvailableZoneIds()} and here: http://www.iana.org/time-zones

Search Academy for more details about: @user.zone.

Responses

@xml

@xml.xpath

Evaluates given XPath expression of given document and returns the result as a list of DOM nodes.

Search Academy for more details about: @xml.xpath.

query Parameters
document
object

The document to be applied. Can be a DOM or an XML string.

xpath
string

The expression to be applied.

Responses

@xml.xpathAsText

Evaluates given XPath expression of given document and returns the result as a text value.

Search Academy for more details about: @xml.xpathAsText.

query Parameters
document
object

The document to be applied. Can be a DOM or an XML string.

xpath
string

The expression to be applied.

Responses